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();
	  }

 效果图:

猜你喜欢

转载自dingjinhong123.iteye.com/blog/2301865
swt