【SWT】常用代码(三)

简介: 【SWT】常用代码(三)

 

Shell

Shell 是一种框架或窗口的复合控件,它有一个作为父控件的 Display,这通常也是默认 设置。SWT 支持两种不同 Shell 类型:一是用于实现主窗口的顶级 Shell;二是用于实现对话 框的 Shell。

构造方法:

1. Shell()
2. Shell(Display display)
3. Shell(Display display, int style) 
4. Shell(int style) 
5. Shell(Shell parent) 
6. Shell(Shellparent, int style)

1. Shell shell=new Shell()
2. Shell shell=-new Shell(display); 
3. Shell shell=new Shell(display,SWT.ClOSE|SWT.MAX|SWT.MIN)
4. Shell shell=new Shell(SWT.ClOSE|SWT.MAX|SWT.MIN) 
5. Shell shell=new Shell(new Shell()) 
6. Shell shell=new Shell(new Shell(),SWT.ClOSE|SWT.MAX|SWT.MIN)

Shell 提供了六种构造方法,其中 Shell(Shell parent)、Shell(Shell parent int style)传入的是 Shell 类的对象,创建一个对话框,其他几种构造方法传入的是 Display 类的对象,将会创建 一个顶级的 shell 窗口

shell  样式表。

实例:

1. package swt.dialog; 
2. import org.eclipse.swt.*; 
3. import org.eclipse.swt.widgets.*; 
4. import org.eclipse.swt.layout.*; 
5. public class ShellDialogExample { 
6. public ShellDialogExample() { 
7. final Display display = new Display(); 
8. // 将窗口设置成对话框
9. final Shell shell = new Shell(display, SWT.DIALOG_TRIM); 
10. // 在 Shell 容器上采用网格式布局,
11.  GridLayout grid = new GridLayout(); 
12. // 将容器设置成一列
13.  grid.numColumns = 1; 
14.  shell.setLayout(grid); 
15.  shell.setText("Shell 对话框实例"); 
16.  shell.setSize(270, 190); 
17.  Label label1 = new Label(shell, SWT.NONE); 
18.  label1.setImage(display.getSystemImage(SWT.ICON_ERROR)); 
19. // 设置提示性表情符
20.  Label label2 = new Label(shell, SWT.NONE); 
21.  label2.setImage(display.getSystemImage(SWT.ICON_INFORMATION)); 
22.  Label label3 = new Label(shell, SWT.NONE); 
23.  label3.setImage(display.getSystemImage(SWT.ICON_WARNING)); 
24.  Label label4 = new Label(shell, SWT.NONE); 
25.  label4.setImage(display.getSystemImage(SWT.ICON_QUESTION)); 
26.  shell.open(); 
27.  shell.layout(); 
28.  while (!shell.isDisposed()) { 
29. if (!display.readAndDispatch()) 
30. display.sleep(); 
31.  } 
32.  } 
33. public static void main(String[] args) { 
34.  new ShellDialogExample(); 
35.  } 
36. }
  1. 该实例的组件定位没有使用以前所介绍的 setBounds(int x ,int y ,int width ,int height) 方法进行组件的绝对定位,而采用了网格布局 GridLayout 进行组件的定位。关于 GridLayout 的知识详见第 7 章网格布局一节。
  2. setImage(Image arg0)方法用来设置要显示的图片。如 label4.setImage(display.getSystem Image(SWT.ICON_QUESTION))用来获得系统的图像。其中,SWT.ICON_QUESTION 为 MessageBox 控件的常用信息提示表情符样式。在 6.2 节“MessageBox 控件”中 还要具体介绍。
  3. 定义 Shell 对话框除了本例中用 SWT.DIALOG_TRIM 样式外,还可以用构造方法Shell shell=new Shell(new Shell())。将 Shell shell = new Shell(display, SWT.DIALOG_ TRIM)语句换成 Shell shell=new Shell(new Shell())可达到同样效果

常用API:

  1. addShellListener(ShellListener listener) shell 监听器,将监听器添加到监听集合中,在 接收者上进行操作时通知监听器集合,通过监听器发送在 ShellListener 接口中定义 的一个消息来通知监听器。
  2. close()请求窗口管理器关闭接收者(这里指 Shell 窗体),窗口关闭方式与用户单击 “关闭框”或执行其他平台特定的按键和鼠标的组合,来指示应该被移出的窗口。
  3. forceActive()强制窗口管理器激活 Shell 窗口。
  4. getBounds()返回用矩形表示窗体区域。
  5. dispose()释放与接收者以及与其相关联的子类的操作系统资源。
  6. getLocation()获取接收者(Shell 窗口)在显示器的位置。
  7. getShell()获得接收者的 shell。 getSize()获得接收者的大小。
  8. isEnabled()如果接收者以及它的父类都处于可用状态,则返回 true;否则返回 false。
  9. isVisible()如果接收者以及它的父类都处于可见(显示)状态,则返回 true;否则返 回 false。 setActive()设置窗口管理器激活 Shell 窗口。
  10. setVisible(boolean visible)如果参数为 true,标记接收者可见;否则为不可见。 setEnabled(boolean enabled)如果参数为 true,接收者处于可用状态;否则处于不可用 状态。 open()设置接收者的显示,将它标记为可见,并且请求窗口管理器激活 Shell。
相关文章
|
存储 Prometheus Cloud Native
「译文」Grafana Loki 简要指南:关于标签您需要了解的一切
「译文」Grafana Loki 简要指南:关于标签您需要了解的一切
|
8月前
|
弹性计算 安全 数据安全/隐私保护
阿里云服务器ECS企业安全组和普通安全组有什么区别?安全组全解析
阿里云ECS安全组分普通与企业级两种,均免费。普通安全组支持经典网络和VPC,最多6000个私网IP,组内默认互通,规则灵活,适合中小规模应用;企业级安全组仅支持VPC,最高支持65536个私网IP,安全性更高,入出方向默认全拒,组内隔离不可改,适用于大规模、高安全需求场景。两者在容量、规则、控制策略及适用环境上差异显著。
404 0
|
搜索推荐 API 开发者
深度解析:利用商品详情 API 接口实现数据获取与应用
在电商蓬勃发展的今天,数据成为驱动业务增长的核心。商品详情API接口作为连接海量商品数据的桥梁,帮助运营者、商家和开发者获取精准的商品信息(如价格、描述、图片、评价等),优化策略、提升用户体验。通过理解API概念、工作原理及不同平台特点,掌握获取权限、构建请求、处理响应和错误的方法,可以将数据应用于商品展示、数据分析、竞品分析和个性化推荐等场景,助力电商创新与发展。未来,随着技术进步,API接口将与人工智能、大数据深度融合,带来更多变革。
558 3
|
机器学习/深度学习 自然语言处理 前端开发
前端大模型入门:Transformer.js 和 Xenova-引领浏览器端的机器学习变革
除了调用API接口使用Transformer技术,你是否想过在浏览器中运行大模型?Xenova团队推出的Transformer.js,基于JavaScript,让开发者能在浏览器中本地加载和执行预训练模型,无需依赖服务器。该库利用WebAssembly和WebGPU技术,大幅提升性能,尤其适合隐私保护、离线应用和低延迟交互场景。无论是NLP任务还是实时文本生成,Transformer.js都提供了强大支持,成为构建浏览器AI应用的核心工具。
3504 1
|
存储 数据安全/隐私保护 Python
`zxcvbn`是一个用于密码强度估计的开源库,由Dropbox开发。它基于一系列启发式方法,包括密码字典、常见密码模式、键盘布局等,来评估密码的强度。
`zxcvbn`是一个用于密码强度估计的开源库,由Dropbox开发。它基于一系列启发式方法,包括密码字典、常见密码模式、键盘布局等,来评估密码的强度。
|
JavaScript 前端开发 安全
TypeScript的主要优势有哪些?
【6月更文挑战第1天】TypeScript的主要优势有哪些?
518 9
|
移动开发 资源调度 JavaScript
【Vue 2】一个高效的低代码表单,可视化设计,一键生成源码
Variant Form 是一款基于 Vue 2 的低代码表单生成器,提供拖拽式可视化设计界面,一键生成完整源码,支持高度自定义配置,适用于 PC、Pad 和 H5 布局。它采用现代化前端技术栈,界面美观且响应迅速,完全开源免费,适合有个性化需求的企业和开发者。通过 Variant Form,你可以大幅提高开发效率,轻松创建各种复杂表单,享受更多摸鱼时间 😎。项目支持自定义 CSS 样式、校验逻辑、国际化多语言等功能,并兼容 IE 11 浏览器,还可导出 Vue 组件及 HTML 源码。
743 0
|
JSON 算法 BI
技术经验解读:优酷真实视频地址解析
技术经验解读:优酷真实视频地址解析