0
我正在關注SWT Slider Snippet示例,並且事件詳細信息在fedora上始終爲0又名SWT.NONE,但詳細信息在Windows 7上設置。此示例可在此處找到http://www.java2s.com/Code/Java/SWT-JFace-Eclipse/SWTSliderprintscrolleventdetails.htm,這裏是我正在運行的代碼。爲什麼滑塊的SWT選擇事件從來沒有細節?
public static void main(String[] args) {
Display display = new Display();
Shell shell = new Shell(display);
final Slider slider = new Slider(shell, SWT.HORIZONTAL);
slider.setBounds(10, 10, 200, 32);
slider.addListener(SWT.Selection, new Listener() {
public void handleEvent(Event event) {
String string = "SWT.NONE";
switch (event.detail) {
case SWT.DRAG:
string = "SWT.DRAG";
break;
case SWT.HOME:
string = "SWT.HOME";
break;
case SWT.END:
string = "SWT.END";
break;
case SWT.ARROW_DOWN:
string = "SWT.ARROW_DOWN";
break;
case SWT.ARROW_UP:
string = "SWT.ARROW_UP";
break;
case SWT.PAGE_DOWN:
string = "SWT.PAGE_DOWN";
break;
case SWT.PAGE_UP:
string = "SWT.PAGE_UP";
break;
}
System.out.println(slider.getSelection());
System.out.println("Scroll detail -> " + string);
}
});
shell.open();
while (!shell.isDisposed()) {
if (!display.readAndDispatch()) display.sleep();
}
display.dispose();
}
Slider的Linux/GTK版本的源代碼似乎設置了詳細信息字段。 –
在詳細信息更新的所有位置拋出Slider類中的斷點後,似乎gtk_button_press_event總是返回0,也就是NONE。這會導致gtk_change_value始終將事件詳細信息設置爲無。 – Lexxicon