- 论坛徽章:
- 0
|
SWT&Jface权威指南---SWT中控件的使用
import org.eclipse.swt.*;
import org.eclipse.swt.graphics.*;
import org.eclipse.swt.layout.*;
import org.eclipse.swt.widgets.*;
/**
* 此类演示menus控件的使用
*/
public class Menus {
private Image star;
private Image circle;
private Image square;
private Image triangle;
/**
* 运行应用程序
*/
public void run() {
Display display = new Display();
Shell shell = new Shell(display);
shell.setText("Menus"
createContents(shell);
shell.setText("順天科技--勤學博思製作"
shell.open();
while (!shell.isDisposed()) {
if (!display.readAndDispatch()) {
display.sleep();
}
}
if (circle != null) circle.dispose();
if (star != null) star.dispose();
if (square != null) square.dispose();
if (triangle != null) triangle.dispose();
display.dispose();
}
/**
* 创建主窗口的内容
*
* @param shell 主窗口
*/
private void createContents(Shell shell) {
shell.setLayout(new FillLayout());
createBarMenu(shell);
createPopUpMenu(shell);
createNoRadioGroupPopUpMenu(shell);
}
/**
* 创建菜单
*/
private void createBarMenu(Shell shell) {
//创建菜单
Menu menu = new Menu(shell, SWT.BAR);
// 创建菜单项
MenuItem fileItem = new MenuItem(menu, SWT.CASCADE);
fileItem.setText("File"
MenuItem editItem = new MenuItem(menu, SWT.CASCADE);
editItem.setText("Edit"
MenuItem formatItem = new MenuItem(menu, SWT.CASCADE);
formatItem.setText("Format"
MenuItem viewItem = new MenuItem(menu, SWT.CASCADE);
viewItem.setText("View"
MenuItem helpItem = new MenuItem(menu, SWT.CASCADE);
helpItem.setText("Help"
// 创建File菜单的下拉菜单
Menu fileMenu = new Menu(menu);
fileItem.setMenu(fileMenu);
// 创建文件菜单下拉菜单中的项目
MenuItem newItem = new MenuItem(fileMenu, SWT.NONE);
newItem.setText("New"
MenuItem openItem = new MenuItem(fileMenu, SWT.NONE);
openItem.setText("Open..."
MenuItem saveItem = new MenuItem(fileMenu, SWT.NONE);
saveItem.setText("Save"
MenuItem saveAsItem = new MenuItem(fileMenu, SWT.NONE);
saveAsItem.setText("Save As...");
new MenuItem(fileMenu, SWT.SEPARATOR);
MenuItem pageSetupItem = new MenuItem(fileMenu, SWT.NONE);
pageSetupItem.setText("age Setup...");
MenuItem printItem = new MenuItem(fileMenu, SWT.NONE);
printItem.setText("rint...");
new MenuItem(fileMenu, SWT.SEPARATOR);
MenuItem exitItem = new MenuItem(fileMenu, SWT.NONE);
exitItem.setText("Exit");
// 设置主窗口的菜单
shell.setMenuBar(menu);
}
/**
* 创建左边的上下文菜单
*/
private void createPopUpMenu(Shell shell) {
// 创建一个面板关联此上下文菜单
Label label = new Label(shell, SWT.BORDER);
label.setText("op-up Menu");
// 创建弹出菜单
Menu menu = new Menu(label);
// 创建图片
star = new Image(shell.getDisplay(), this.getClass().getResourceAsStream(
"05.gif"));
circle = new Image(shell.getDisplay(), this.getClass().getResourceAsStream(
"05.gif"));
square = new Image(shell.getDisplay(), this.getClass().getResourceAsStream(
"05.gif"));
triangle = new Image(shell.getDisplay(), this.getClass().getResourceAsStream(
"05.gif"));
// 创建谈出菜单的菜单项
MenuItem newItem = new MenuItem(menu, SWT.CASCADE);
newItem.setText("New");
newItem.setImage(star);
MenuItem refreshItem = new MenuItem(menu, SWT.NONE);
refreshItem.setText("Refresh");
refreshItem.setImage(circle);
MenuItem deleteItem = new MenuItem(menu, SWT.NONE);
deleteItem.setText("Delete");
new MenuItem(menu, SWT.SEPARATOR);
// 添加复选菜单项
MenuItem checkItem = new MenuItem(menu, SWT.CHECK);
checkItem.setText("Check");
checkItem.setSelection(true);
checkItem.setImage(square);
// 添加一个push菜单项
MenuItem pushItem = new MenuItem(menu, SWT.PUSH);
pushItem.setText("ush");
new MenuItem(menu, SWT.SEPARATOR);
// 创建一些单选菜单项
MenuItem item1 = new MenuItem(menu, SWT.RADIO);
item1.setText("Radio One");
item1.setImage(triangle);
MenuItem item2 = new MenuItem(menu, SWT.RADIO);
item2.setText("Radio Two");
MenuItem item3 = new MenuItem(menu, SWT.RADIO);
item3.setText("Radio Three");
//创建一个单选的菜单项组
new MenuItem(menu, SWT.SEPARATOR);
// 创建一些单选项
MenuItem itema = new MenuItem(menu, SWT.RADIO);
itema.setText("Radio A");
MenuItem itemb = new MenuItem(menu, SWT.RADIO);
itemb.setText("Radio B");
MenuItem itemc = new MenuItem(menu, SWT.RADIO);
itemc.setText("Radio C");
//创建一个新的下拉菜单
Menu newMenu = new Menu(menu);
newItem.setMenu(newMenu);
// 创建此新的下拉菜单的菜单项
MenuItem shortcutItem = new MenuItem(newMenu, SWT.NONE);
shortcutItem.setText("Shortcut");
MenuItem iconItem = new MenuItem(newMenu, SWT.NONE);
iconItem.setText("Icon");
// 设置此菜单与Label关联
label.setMenu(menu);
}
/**
* 创建非单选组的菜单
*/
private void createNoRadioGroupPopUpMenu(Shell shell) {
// 创建面板与菜单关联
Label label = new Label(shell, SWT.BORDER);
label.setText("No Radio Group Menu");
Menu menu = new Menu(shell, SWT.POP_UP | SWT.NO_RADIO_GROUP);
label.setMenu(menu);
MenuItem item1 = new MenuItem(menu, SWT.RADIO);
item1.setText("Radio One");
MenuItem item2 = new MenuItem(menu, SWT.RADIO);
item2.setText("Radio Two");
MenuItem item3 = new MenuItem(menu, SWT.RADIO);
item3.setText("Radio Three");
label.setMenu(menu);
}
public static void main(String[] args) {
new Menus().run();
}
} |
|