好久没更新了,今天我来介绍SWT的控件是:Scale,Slider,Spinner,DateTime,ToolTip
1.scale:
Style: SWT.HORIZONTAL,SWT.VERTICAL(这两个属性是互斥的),SWT.BORDER
Event:SelectionListener 其他是control默认能出发的事件
例子:
Display display = new Display(); Shell shell = new Shell(display); Scale scaleH = new Scale(shell, SWT.NULL); Scale scaleV = new Scale(shell, SWT.VERTICAL); scaleH.setBounds(0, 0, 100, 50); scaleV.setBounds(0, 50, 50, 100); System.out.println("Min: " + scaleH.getMinimum()); System.out.println("Max: " + scaleH.getMaximum()); shell.pack(); shell.open(); while (!shell.isDisposed()) { if (!display.readAndDispatch()) { display.sleep(); } } display.dispose();
效果图:
2.slider:
Style: SWT.HORIZONTAL,SWT.VERTICAL(这两个属性是互斥的),SWT.BORDER
Event:SelectionListener 其他是control默认能出发的事件
例子:
Display display = new Display(); Shell shell = new Shell(display); shell.setLayout(new GridLayout(1, true)); Label label = new Label(shell, SWT.NULL); label.setText("Volume:"); final Slider slider = new Slider(shell, SWT.VERTICAL); slider.setBounds(0, 0, 40, 200); slider.setMaximum(24); slider.setMinimum(0); slider.setIncrement(1); slider.setPageIncrement(5); slider.setThumb(4); final Text value = new Text(shell, SWT.BORDER | SWT.SINGLE); value.setEditable(false); slider.setLayoutData(new GridData(GridData.HORIZONTAL_ALIGN_CENTER)); value.setLayoutData(new GridData(GridData.HORIZONTAL_ALIGN_CENTER)); slider.addListener(SWT.Selection, new Listener() { public void handleEvent(Event event) { int perspectiveValue = slider.getMaximum() - slider.getSelection() + slider.getMinimum() - slider.getThumb(); value.setText("Vol: " + perspectiveValue); } }); shell.pack(); shell.open(); while (!shell.isDisposed()) { if (!display.readAndDispatch()) { display.sleep(); } } display.dispose();
效果图:
3.spinner:
Style:SWT.BORDER,SWT.READD_ONLY,SWT.WRAP,
Event:ModifyListener,SelectionListener,其他是control默认能出发的事件
例子:
Display display = new Display(); Shell shell = new Shell(display); Spinner spinner = new Spinner(shell, SWT.BORDER); spinner.setBounds(30, 20, 60, 20); spinner.setDigits(3); spinner.setMinimum(0); spinner.setMaximum(1000); spinner.setSelection(500); spinner.setIncrement(1); shell.pack(); shell.open(); while (!shell.isDisposed()) { if (!display.readAndDispatch()) { display.sleep(); } } display.dispose();
效果图:
4.DateTime:
Style:SWT.DATE,SWT.TIME,SWT.CALENDAR,
Event:SelectionListener 其他是control默认能出发的事件
例子:
Display display = new Display(); Shell shell = new Shell(display); DateTime dateTime = new DateTime(shell, SWT.BORDER); dateTime.setBounds(10, 10, 158, 24); DateTime dateTime_1 = new DateTime(shell, SWT.BORDER | SWT.TIME); dateTime_1.setBounds(10, 40, 158, 24); DateTime dateTime_2 = new DateTime(shell, SWT.BORDER | SWT.CALENDAR); dateTime_2.setBounds(10, 70, 158, 160); shell.pack(); shell.open(); while (!shell.isDisposed()) { if (!display.readAndDispatch()) { display.sleep(); } } display.dispose();
效果图:
5.ToolTip:
Style:SWT.ICON_ERROR,SWT.ICON_INFORMATION,SWT.ICON_WARNING(这3个是互斥的,也可以一个都不选,就是没有图片) SWT.BALLOON
Event:SelectionListener 其他是widget默认能出发的事件。
例子1:
final int TOOLTIP_HIDE_DELAY = 300; // 0.3s final int TOOLTIP_SHOW_DELAY = 1000; // 1.0s Display display = new Display(); Shell shell = new Shell(display); shell.setLayout(new GridLayout()); Label label = new Label(shell, SWT.BORDER); label.setText("test tool tip"); final ToolTip tip = new ToolTip(label.getShell(), SWT.BALLOON); tip.setText("tool tip"); tip.setMessage("test tool tip"); tip.setAutoHide(false); label.addListener(SWT.MouseHover, new Listener() { public void handleEvent(Event event) { tip.getDisplay().timerExec(TOOLTIP_SHOW_DELAY, new Runnable() { public void run() { tip.setVisible(true); } }); } }); label.addListener(SWT.MouseExit, new Listener() { public void handleEvent(Event event) { tip.getDisplay().timerExec(TOOLTIP_HIDE_DELAY, new Runnable() { public void run() { tip.setVisible(false); } }); } }); shell.pack(); shell.open(); while (!shell.isDisposed()) { if (!display.readAndDispatch()) { display.sleep(); } } display.dispose();
效果图:
例子2(show in tray):
Display display = new Display(); Shell shell = new Shell(display); Image image = null; final ToolTip tip = new ToolTip(shell, SWT.BALLOON | SWT.ICON_INFORMATION); tip.setMessage("Here is a message for the user. When the message is too long it wraps. I should say something cool but nothing comes to my mind."); Tray tray = display.getSystemTray(); if (tray != null) { TrayItem item = new TrayItem(tray, SWT.NONE); image = new Image(display, "cut.png"); item.setImage(image); tip.setText("Notification from a tray item"); item.setToolTip(tip); } else { tip.setText("Notification from anywhere"); tip.setLocation(400, 400); } Button button = new Button(shell, SWT.PUSH); button.setText("Press for balloon tip"); button.addListener(SWT.Selection, new Listener() { public void handleEvent(Event event) { tip.setVisible(true); } }); button.pack(); shell.setBounds(50, 50, 300, 200); shell.open(); while (!shell.isDisposed()) { if (!display.readAndDispatch()) display.sleep(); } if (image != null) image.dispose(); display.dispose(); }
效果图:
相关推荐
"SWT高级密笈源码"很可能是针对SWT库深入理解和实践的代码示例集合,旨在帮助开发者掌握SWT的高级用法。 本资源包含的"Sample Code"可能是各种基于SWT的实例代码,这些代码涵盖了SWT的各种组件、布局管理、事件处理...
JFace包含了一些高级控件和数据绑定机制,例如对话框、表单、视图管理器等,这些都帮助开发者快速创建用户界面。 ### SWT和JFace的结合使用 在实际开发中,开发者通常会结合SWT和JFace。SWT用于创建底层的控件和...
高级控件使用 高级控件使用 高级控件使用 高级控件使用高级控件使用 高级控件使用 高级控件使用
在实际开发中,SWT和JFace通常一起使用,SWT提供底层的控件和事件处理,而JFace则提供了更高级的抽象和工具,简化了开发过程。例如,通过JFace的DataBinding机制,开发者可以轻松地实现模型与视图之间的数据同步。 ...
Eclipse中的`SWT`控件和`JFace`(SWT的高级抽象层)共同构建了强大的用户界面,使得开发者可以方便地创建复杂的工作流和工具视图。 ### 示例代码:Lists.java 在`Lists.java`中,可能包含了使用SWT创建列表控件的...
《Eclipse SWT/Jface核心应用》全面介绍了SWT、JFace和RCP的相关知识。全书共分5篇,第1篇介绍了SWT产生...第3篇介绍了关于SWT的高级应用。第4篇介绍了JFace框架的知识及其应用。第5篇介绍了最新的RCP应用程序的开发。
第3篇介绍了关于SWT的高级应用。第4篇介绍了JFace 框架的知识及其应用。第5篇介绍了最新的RCP应用程序的开发。 本书结构清晰,注重实用,深入浅出,非常适合Eclipse开发人员学习使用,尤其适合SWT/JFace开发人员、...
第3篇介绍了关于SWT的高级应用。第4篇介绍了JFace 框架的知识及其应用。第5篇介绍了最新的RCP应用程序的开发。 本书结构清晰,注重实用,深入浅出,非常适合Eclipse开发人员学习使用,尤其适合SWT/JFace开发人员、...
第3篇介绍了关于SWT的高级应用。第4篇介绍了JFace 框架的知识及其应用。第5篇介绍了最新的RCP应用程序的开发。 本书结构清晰,注重实用,深入浅出,非常适合Eclipse开发人员学习使用,尤其适合SWT/JFace开发人员、...
【标题】"swt-api swt DOC" 指的是一个关于SWT(Standard Widget Toolkit)API的...通过深入研究这个文档,开发者不仅可以掌握SWT的基本用法,还能了解到高级特性和优化技巧,从而提升其在Java GUI编程领域的专业能力。
SWT(Standard Widget Toolkit)是Eclipse平台下的图形界面开发工具包,而JFace则是基于SWT之上的高级用户界面工具集。SWT提供了低级别的组件,用于创建跨平台的图形用户界面;而JFace则在此基础上提供了更高级别的...
`JFace`标签暗示了这个压缩包可能也包含了JFace库,JFace是基于SWT构建的,提供了如对话框、表视图、树视图等高级控件,以及数据绑定和事件处理机制,让开发者能够更专注于业务逻辑而不是底层GUI的实现。 `....
《Eclipse SWT/Jface核心应用》全面介绍了SWT、JFace和RCP的相关知识。全书共分5篇,第1篇介绍了SWT产生...第3篇介绍了关于SWT的高级应用。第4篇介绍了JFace框架的知识及其应用。第5篇介绍了最新的RCP应用程序的开发。
《Eclipse SWT/Jface核心应用》全面介绍了SWT、JFace和RCP的相关知识。全书共分5篇,第1篇介绍了SWT产生...第3篇介绍了关于SWT的高级应用。第4篇介绍了JFace框架的知识及其应用。第5篇介绍了最新的RCP应用程序的开发。
3. **可扩展性**:SWT允许开发者自定义控件,以满足特定需求。 4. **事件驱动**:SWT使用事件模型来处理用户交互,这使得代码更简洁,易于理解和维护。 5. **与JFace集成**:JFace是建立在SWT之上的更高层次的API,...
"SWT开发参考文档.pdf"是一份详细的SWT指南,涵盖了从基本组件如按钮、文本框到高级控件如表格、树视图等的所有内容。你将学习如何创建窗口、布局管理器的使用,以及如何处理事件。此外,文档还介绍了JFace和Eclipse...
JFace则是在SWT基础上构建的一层抽象,它简化了GUI编程,提供了一些高级控件和数据绑定功能。 在SWT中,程序开发通常涉及以下几个步骤: 1. **导入库**:首先,你需要导入SWT库,这通常通过在项目构建路径中添加...
8. **JFace控件**:JFace在SWT基础上添加了如DataBinding、ViewPart、SashForm等高级组件,简化了数据模型和视图的绑定,使得UI的创建更加直观和简洁。 9. **表单和数据绑定**:JFace的DataBinding机制使得数据模型...
- **控件体系**:SWT包括一系列基本控件,如按钮、文本框、滚动条、列表、树形视图等,以及容器控件如壳体(Shell)、表单(Composite)、框架(Frame)等,它们构成了GUI的基本元素。 - **布局管理**:SWT提供了...
3. **高级控件**:JFace提供了一些高级控件,如表视图、树视图,以及对话框,这些控件在SWT的基础上进行了封装,简化了开发过程。 4. **对话框和Wizard**:JFace提供了一套标准的对话框和Wizard框架,方便开发者构建...