📄 menudemo.java
字号:
import org.eclipse.swt.SWT;
import org.eclipse.swt.events.*;
import org.eclipse.swt.widgets.*;
public class MenuDemo {
public static Display myDisplay;
public static boolean internalCall = false;
public static void main(String[] args) {
internalCall = true;
myDisplay = new Display();
MenuDemo md = new MenuDemo();
md.runDemo(myDisplay);
}
public void runDemo(Display display) {
myDisplay = display;
Shell shell = new Shell(display);
shell.setText("Menu Demo");
//create the menu bar
Menu menu = new Menu(shell, SWT.BAR);
shell.setMenuBar(menu);
//add File option to it
MenuItem file = new MenuItem(menu, SWT.CASCADE);
file.setText("File");
//set the menu for the File option
Menu filemenu = new Menu(shell, SWT.DROP_DOWN);
file.setMenu(filemenu);
//add MenuItems to the File menu
MenuItem actionItem = new MenuItem(filemenu, SWT.PUSH);
actionItem.setText("Action");
//listen for Action using generic listener
actionItem.addListener(SWT.Selection, new Listener() {
public void handleEvent(Event e) {
System.out.println("Action performed!");
}
});
//add a separator to the file menu
MenuItem separator = new MenuItem(filemenu, SWT.SEPARATOR);
//add a radio item
final MenuItem radioItem = new MenuItem(filemenu, SWT.RADIO);
radioItem.setText("Radio");
//add a check item
final MenuItem checkItem = new MenuItem(filemenu, SWT.CHECK);
checkItem.setText("Check");
//listen for radio toggle
//note that radio-button behaviour if required must be programmed
//manually. It acts identically to a check item otherwise.
radioItem.addListener(SWT.Selection, new Listener() {
public void handleEvent(Event e) {
System.out.println("Radio item toggled to:"+ radioItem.getSelection());
}
});
//listen for check toggle
checkItem.addListener(SWT.Selection, new Listener() {
public void handleEvent(Event e) {
System.out.println("Check item toggled to:" + checkItem.getSelection());
}
});
//add a cascade item (submenu)
MenuItem cascadeItem = new MenuItem(filemenu, SWT.CASCADE);
cascadeItem.setText("Cascade");
Menu submenu = new Menu(shell, SWT.DROP_DOWN);
cascadeItem.setMenu(submenu);
//add subaction, with Ctrl+S keyboard shortcut
final MenuItem subactionItem = new MenuItem(submenu, SWT.PUSH);
subactionItem.setText("&SubAction\tCtrl+S");
subactionItem.setAccelerator(SWT.CTRL+'S');
subactionItem.setEnabled(false);
//add a check item to enable/disable the SubAction
final MenuItem enableItem = new MenuItem(submenu, SWT.CHECK);
enableItem.setText("Enable SubAction");
//listen for submenu being shown
submenu.addMenuListener(new MenuListener() {
public void menuShown(MenuEvent e) {
System.out.println("SubMenu shown");
}
public void menuHidden(MenuEvent e) {
System.out.println("SubMenu hidden");
}
});
//listen for enablement toggle for SubAction
enableItem.addListener(SWT.Selection, new Listener() {
public void handleEvent(Event e) {
System.out.println("Toggling \"Enable SubAction\" to " + enableItem.getSelection());
subactionItem.setEnabled(enableItem.getSelection());
}
});
//listen for "SubAction" selected using SelectionListener
//as opposed to the generic listener used for Action
subactionItem.addSelectionListener(new SelectionListener() {
public void widgetSelected(SelectionEvent e) {
System.out.println("SubAction performed!");
}
public void widgetDefaultSelected(SelectionEvent e) {
}
});
//listen for subaction being armed
subactionItem.addArmListener(new ArmListener() {
public void widgetArmed(ArmEvent e) {
System.out.println("SubAction armed!");
}
});
//listen for help event (F1 being pressed on it)
subactionItem.addHelpListener(new HelpListener() {
public void helpRequested(HelpEvent e) {
System.out.println("Help requested on SubAction");
}
});
shell.setSize(300,300);
shell.open();
while(!shell.isDisposed())
if(!display.readAndDispatch())
display.sleep();
if (internalCall) display.dispose();
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -