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