Eclipse开发经典教程:展现组件2008-02-15 11:08:25 来源:IT168 作者:阿甘
SWT中还有一些常用的组件,它们可以使组件更有表现力,且称之为展现组件,它们在SWT开发中也是不可缺少的,包括菜单组件、工具栏组件ToolBar和ToolItem、工具栏组件CoolBar和CoolItem、滚动组件Slider、刻度组件Scale和进度条组件ProgressBar等。
SWT中还有一些常用的组件,它们可以使组件更有表现力,且称之为展现组件,它们在SWT开发中也是不可缺少的,包括菜单组件、工具栏组件ToolBar和ToolItem、工具栏组件CoolBar和CoolItem、滚动组件Slider、刻度组件Scale和进度条组件ProgressBar等。
菜单组件 在程序中,菜单是提供信息比较好的方式,SWT中通过Menu和MenuItem实现菜单和菜单项,在程序中添加菜单的步骤如下。 (1)创建Menu对象,并指定创建的样式,例如“menuBar = new Menu(shell, SWT.BAR);”。 (2)创建MenuItem对象,并指定创建样式,例如“fileEnglishItem = new MenuItem (fileMenu, SWT.RADIO);”。 (3)设置Menu和MenuItem的关联(Menu中还可以有子Menu),例如“fileMenuHeader. setMenu(fileMenu);”。 (4)添加MenuItem的事件监听器,例如“fileEnglishItem.addSelectionListener(new RadioItemListener());”。 为了更好地掌握菜单,下面通过一个实例演示如何创建菜单,代码如例程1所示。 例程1 MenuExample.java
/*
*
* 为了节省篇幅,所有的import类已经被注释 * 读者可以通过ctrl+shift+o快捷键,自动引入所依赖的类 * 如果有问题可发邮件到ganshm@gmail.com * */ public class MenuExample { Display display; Shell shell; Menu menuBar, fileMenu, editMenu; MenuItem fileMenuHeader, editMenuHeader; MenuItem fileExitItem, fileSaveItem, fileEnglishItem, fileGermanItem, editCopyItem; Text text; public MenuExample() { display = new Display(); shell = new Shell(display); shell.setText( " Menu Example " ); shell.setSize( 300 , 200 ); text = new Text(shell, SWT.BORDER); text.setBounds( 80 , 50 , 150 , 25 ); // 添加主菜单项 menuBar = new Menu(shell, SWT.BAR); // 添加一级子菜单 fileMenuHeader = new MenuItem(menuBar, SWT.CASCADE); fileMenuHeader.setText( " &File " ); // 添加一级子菜单的菜单项 fileMenu = new Menu(shell, SWT.DROP_DOWN); fileMenuHeader.setMenu(fileMenu); fileSaveItem = new MenuItem(fileMenu, SWT.PUSH); fileSaveItem.setText( " &Save " ); fileEnglishItem = new MenuItem(fileMenu, SWT.RADIO); fileEnglishItem.setText( " English " ); fileGermanItem = new MenuItem(fileMenu, SWT.RADIO); fileGermanItem.setText( " German " ); fileExitItem = new MenuItem(fileMenu, SWT.PUSH); fileExitItem.setText( " E&xit " ); editMenuHeader = new MenuItem(menuBar, SWT.CASCADE); editMenuHeader.setText( " &Edit " ); editMenu = new Menu(shell, SWT.DROP_DOWN); editMenuHeader.setMenu(editMenu); editCopyItem = new MenuItem(editMenu, SWT.PUSH); editCopyItem.setText( " &Copy " ); // 添加菜单项的事件监听器 fileExitItem.addSelectionListener( new MenuItemListener()); fileSaveItem.addSelectionListener( new MenuItemListener()); editCopyItem.addSelectionListener( new MenuItemListener()); fileEnglishItem.addSelectionListener( new RadioItemListener()); fileGermanItem.addSelectionListener( new RadioItemListener()); shell.setMenuBar(menuBar); shell.open(); while ( ! shell.isDisposed()) { if ( ! display.readAndDispatch()) display.sleep(); } display.dispose(); } class MenuItemListener extends SelectionAdapter { public void widgetSelected(SelectionEvent event ) { text.setText( " You selected " + ((MenuItem) event .widget).getText()); if (((MenuItem) event .widget).getText().equals( " E&xit " )) { shell.close(); } } } class RadioItemListener extends SelectionAdapter { public void widgetSelected(SelectionEvent event ) { MenuItem item = (MenuItem) event .widget; text.setText(item.getText() + " is on. " ); } } public static void main(String[] args) { MenuExample menuExample = new MenuExample(); } }
|
|
||||
|
|
||||
|
|
|
||||
|
|
||||
|
|
|
||||
|
|
||||
|
|