`
冷漠过客
  • 浏览: 5924 次
社区版块
存档分类
最新评论

SWT 高级控件(3)

 
阅读更多

好久没更新了,今天我来介绍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();
	  }

 效果图:

 

  • 大小: 1.7 KB
  • 大小: 2.2 KB
  • 大小: 1.7 KB
  • 大小: 7.9 KB
  • 大小: 6.5 KB
  • 大小: 25.2 KB
分享到:
评论

相关推荐

    swt高级密笈源码swt

    "SWT高级密笈源码"很可能是针对SWT库深入理解和实践的代码示例集合,旨在帮助开发者掌握SWT的高级用法。 本资源包含的"Sample Code"可能是各种基于SWT的实例代码,这些代码涵盖了SWT的各种组件、布局管理、事件处理...

    SWT/JFace 控件实例

    JFace包含了一些高级控件和数据绑定机制,例如对话框、表单、视图管理器等,这些都帮助开发者快速创建用户界面。 ### SWT和JFace的结合使用 在实际开发中,开发者通常会结合SWT和JFace。SWT用于创建底层的控件和...

    高级控件使用

    高级控件使用 高级控件使用 高级控件使用 高级控件使用高级控件使用 高级控件使用 高级控件使用

    SWT基础代码涵盖其所有控件

    在实际开发中,SWT和JFace通常一起使用,SWT提供底层的控件和事件处理,而JFace则提供了更高级的抽象和工具,简化了开发过程。例如,通过JFace的DataBinding机制,开发者可以轻松地实现模型与视图之间的数据同步。 ...

    SWT控件

    Eclipse中的`SWT`控件和`JFace`(SWT的高级抽象层)共同构建了强大的用户界面,使得开发者可以方便地创建复杂的工作流和工具视图。 ### 示例代码:Lists.java 在`Lists.java`中,可能包含了使用SWT创建列表控件的...

    Eclipse SWT JFace核心应用_pdf_含标签_目录

    《Eclipse SWT/Jface核心应用》全面介绍了SWT、JFace和RCP的相关知识。全书共分5篇,第1篇介绍了SWT产生...第3篇介绍了关于SWT的高级应用。第4篇介绍了JFace框架的知识及其应用。第5篇介绍了最新的RCP应用程序的开发。

    Eclipse SWT JFace核心应用 PDF.part3 of 3

    第3篇介绍了关于SWT的高级应用。第4篇介绍了JFace 框架的知识及其应用。第5篇介绍了最新的RCP应用程序的开发。 本书结构清晰,注重实用,深入浅出,非常适合Eclipse开发人员学习使用,尤其适合SWT/JFace开发人员、...

    Eclipse SWT JFace核心应用 PDF.part1 of 3

    第3篇介绍了关于SWT的高级应用。第4篇介绍了JFace 框架的知识及其应用。第5篇介绍了最新的RCP应用程序的开发。 本书结构清晰,注重实用,深入浅出,非常适合Eclipse开发人员学习使用,尤其适合SWT/JFace开发人员、...

    Eclipse SWT JFace核心应用 PDF.part2 of 3

    第3篇介绍了关于SWT的高级应用。第4篇介绍了JFace 框架的知识及其应用。第5篇介绍了最新的RCP应用程序的开发。 本书结构清晰,注重实用,深入浅出,非常适合Eclipse开发人员学习使用,尤其适合SWT/JFace开发人员、...

    swt-api swt DOC

    【标题】"swt-api swt DOC" 指的是一个关于SWT(Standard Widget Toolkit)API的...通过深入研究这个文档,开发者不仅可以掌握SWT的基本用法,还能了解到高级特性和优化技巧,从而提升其在Java GUI编程领域的专业能力。

    SWT JFace 按键、事件、监听

    SWT(Standard Widget Toolkit)是Eclipse平台下的图形界面开发工具包,而JFace则是基于SWT之上的高级用户界面工具集。SWT提供了低级别的组件,用于创建跨平台的图形用户界面;而JFace则在此基础上提供了更高级别的...

    SWT的官方压缩包

    `JFace`标签暗示了这个压缩包可能也包含了JFace库,JFace是基于SWT构建的,提供了如对话框、表视图、树视图等高级控件,以及数据绑定和事件处理机制,让开发者能够更专注于业务逻辑而不是底层GUI的实现。 `....

    Eclipse SWT/Jface核心应用(2)

    《Eclipse SWT/Jface核心应用》全面介绍了SWT、JFace和RCP的相关知识。全书共分5篇,第1篇介绍了SWT产生...第3篇介绍了关于SWT的高级应用。第4篇介绍了JFace框架的知识及其应用。第5篇介绍了最新的RCP应用程序的开发。

    Eclipse SWT/Jface核心应用(1)

    《Eclipse SWT/Jface核心应用》全面介绍了SWT、JFace和RCP的相关知识。全书共分5篇,第1篇介绍了SWT产生...第3篇介绍了关于SWT的高级应用。第4篇介绍了JFace框架的知识及其应用。第5篇介绍了最新的RCP应用程序的开发。

    eclipse -- swt

    3. **可扩展性**:SWT允许开发者自定义控件,以满足特定需求。 4. **事件驱动**:SWT使用事件模型来处理用户交互,这使得代码更简洁,易于理解和维护。 5. **与JFace集成**:JFace是建立在SWT之上的更高层次的API,...

    SWT界面设计PDF

    "SWT开发参考文档.pdf"是一份详细的SWT指南,涵盖了从基本组件如按钮、文本框到高级控件如表格、树视图等的所有内容。你将学习如何创建窗口、布局管理器的使用,以及如何处理事件。此外,文档还介绍了JFace和Eclipse...

    swt入门教程swt JFACE入门教程

    JFace则是在SWT基础上构建的一层抽象,它简化了GUI编程,提供了一些高级控件和数据绑定功能。 在SWT中,程序开发通常涉及以下几个步骤: 1. **导入库**:首先,你需要导入SWT库,这通常通过在项目构建路径中添加...

    SWT 各种小示例集中

    8. **JFace控件**:JFace在SWT基础上添加了如DataBinding、ViewPart、SashForm等高级组件,简化了数据模型和视图的绑定,使得UI的创建更加直观和简洁。 9. **表单和数据绑定**:JFace的DataBinding机制使得数据模型...

    SWT API

    - **控件体系**:SWT包括一系列基本控件,如按钮、文本框、滚动条、列表、树形视图等,以及容器控件如壳体(Shell)、表单(Composite)、框架(Frame)等,它们构成了GUI的基本元素。 - **布局管理**:SWT提供了...

    JFace-SWT-API(含swt.jar和swt-debug.jar)

    3. **高级控件**:JFace提供了一些高级控件,如表视图、树视图,以及对话框,这些控件在SWT的基础上进行了封装,简化了开发过程。 4. **对话框和Wizard**:JFace提供了一套标准的对话框和Wizard框架,方便开发者构建...

Global site tag (gtag.js) - Google Analytics