<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                ??碼云GVP開源項目 12k star Uniapp+ElementUI 功能強大 支持多語言、二開方便! 廣告
                # Java SWT 中的菜單和工具欄 > 原文: [http://zetcode.com/gui/javaswt/menustoolbars/](http://zetcode.com/gui/javaswt/menustoolbars/) 在 Java SWT 教程的這一部分中,我們使用菜單和工具欄。 菜單欄是 GUI 應用的常見部分。 它是位于各個菜單中的一組命令。 ## 簡單菜單 在第一個示例中,我們創建一個帶有一個文件菜單的菜單欄。 該菜單只有一個菜單項。 通過選擇項目,應用結束。 `SimpleMenuEx.java` ```java package com.zetcode; import org.eclipse.swt.SWT; import org.eclipse.swt.widgets.Display; import org.eclipse.swt.widgets.Menu; import org.eclipse.swt.widgets.MenuItem; import org.eclipse.swt.widgets.Shell; /** * ZetCode Java SWT tutorial * * This program creates a simple menu. * * Author: Jan Bodnar * Website: zetcode.com * Last modified: June 2015 */ public class SimpleMenuEx { public SimpleMenuEx(Display display) { initUI(display); } private void initUI(Display display) { Shell shell = new Shell(display, SWT.SHELL_TRIM | SWT.CENTER); Menu menuBar = new Menu(shell, SWT.BAR); MenuItem cascadeFileMenu = new MenuItem(menuBar, SWT.CASCADE); cascadeFileMenu.setText("&File"); Menu fileMenu = new Menu(shell, SWT.DROP_DOWN); cascadeFileMenu.setMenu(fileMenu); MenuItem exitItem = new MenuItem(fileMenu, SWT.PUSH); exitItem.setText("&Exit"); shell.setMenuBar(menuBar); exitItem.addListener(SWT.Selection, event-> { shell.getDisplay().dispose(); System.exit(0); }); shell.setText("Simple menu"); shell.setSize(300, 200); shell.open(); while (!shell.isDisposed()) { if (!display.readAndDispatch()) { display.sleep(); } } } @SuppressWarnings("unused") public static void main(String[] args) { Display display = new Display(); SimpleMenuEx ex = new SimpleMenuEx(display); display.dispose(); } } ``` 這是一個最小的菜單欄功能示例。 ```java Menu menuBar = new Menu(shell, SWT.BAR); ``` 將`SWT.BAR`選項傳遞給`Menu`將創建一個菜單欄。 ```java MenuItem cascadeFileMenu = new MenuItem(menuBar, SWT.CASCADE); cascadeFileMenu.setText("&File"); ``` 頂級菜單項是級聯菜單項。 他們收到`SWT.CASCADE`選項。 ```java Menu fileMenu = new Menu(shell, SWT.DROP_DOWN); cascadeFileMenu.setMenu(fileMenu); ``` 下拉菜單是使用`SWT.DROP_DOWN`選項創建的。 ```java MenuItem exitItem = new MenuItem(fileMenu, SWT.PUSH); exitItem.setText("&Exit"); ``` 推菜單項已插入下拉菜單中。 它是使用`SWT.PUSH`選項創建的。 ```java shell.setMenuBar(menuBar); ``` `setMenuBar()`在外殼上設置菜單欄。 ```java exitItem.addListener(SWT.Selection, event-> { shell.getDisplay().dispose(); System.exit(0); }); ``` 當我們選擇退出推送菜單項時,應用終止。 ![Simple menu](https://img.kancloud.cn/86/39/8639265a48d76ea95d90835403740dc6_246x197.jpg) 圖:簡單菜單 ## 子菜單 下一個示例演示如何創建子菜單。 `SubMenuEx.java` ```java package com.zetcode; import org.eclipse.swt.SWT; import org.eclipse.swt.widgets.Display; import org.eclipse.swt.widgets.Menu; import org.eclipse.swt.widgets.MenuItem; import org.eclipse.swt.widgets.Shell; /** * ZetCode Java SWT tutorial * * This program creates a submenu. * * Author: Jan Bodnar * Website: zetcode.com * Last modified: June 2015 */ public class SubMenuEx { public SubMenuEx(Display display) { initUI(display); } private void initUI(Display display) { Shell shell = new Shell(display, SWT.SHELL_TRIM | SWT.CENTER); Menu menuBar = new Menu(shell, SWT.BAR); MenuItem cascadeFileMenu = new MenuItem(menuBar, SWT.CASCADE); cascadeFileMenu.setText("&File"); Menu fileMenu = new Menu(shell, SWT.DROP_DOWN); cascadeFileMenu.setMenu(fileMenu); MenuItem cascadeEditMenu = new MenuItem(menuBar, SWT.CASCADE); cascadeEditMenu.setText("&Edit"); MenuItem subMenuItem = new MenuItem(fileMenu, SWT.CASCADE); subMenuItem.setText("Import"); Menu submenu = new Menu(shell, SWT.DROP_DOWN); subMenuItem.setMenu(submenu); MenuItem feedItem = new MenuItem(submenu, SWT.PUSH); feedItem.setText("&Import news feed..."); MenuItem bmarks = new MenuItem(submenu, SWT.PUSH); bmarks.setText("&Import bookmarks..."); MenuItem mailItem = new MenuItem(submenu, SWT.PUSH); mailItem.setText("&Import mail..."); MenuItem exitItem = new MenuItem(fileMenu, SWT.PUSH); exitItem.setText("&Exit"); shell.setMenuBar(menuBar); exitItem.addListener(SWT.Selection, event-> { shell.getDisplay().dispose(); System.exit(0); }); shell.setText("Submenu"); shell.setSize(300, 250); shell.open(); while (!shell.isDisposed()) { if (!display.readAndDispatch()) { display.sleep(); } } } @SuppressWarnings("unused") public static void main(String[] args) { Display display = new Display(); SubMenuEx ex = new SubMenuEx(display); display.dispose(); } } ``` 該示例在另一個菜單內創建一個菜單。 ```java MenuItem subMenuItem = new MenuItem(fileMenu, SWT.CASCADE); subMenuItem.setText("Import"); ``` 子菜單的創建類似于創建普通菜單。 首先,我們創建一個層疊菜單項。 唯一的區別是父窗口小部件。 這次,父級是子菜單所屬的菜單對象。 ```java MenuItem feedItem = new MenuItem(submenu, SWT.PUSH); feedItem.setText("&Import news feed..."); ``` 我們創建一個推菜單項。 父窗口小部件是子菜單對象。 ![Submenu](https://img.kancloud.cn/ac/79/ac79db38de10fd34d03c6d73b8965635_296x247.jpg) 圖:子菜單 ## `CheckMenuItem` `CheckMenuItem`是帶有復選框的菜單項。 它可以用于布爾屬性。 `CheckMenuItemEx.java` ```java package com.zetcode; import org.eclipse.swt.SWT; import org.eclipse.swt.events.SelectionAdapter; import org.eclipse.swt.events.SelectionEvent; import org.eclipse.swt.layout.FormAttachment; import org.eclipse.swt.layout.FormData; import org.eclipse.swt.layout.FormLayout; import org.eclipse.swt.widgets.Display; import org.eclipse.swt.widgets.Event; import org.eclipse.swt.widgets.Label; import org.eclipse.swt.widgets.Listener; import org.eclipse.swt.widgets.Menu; import org.eclipse.swt.widgets.MenuItem; import org.eclipse.swt.widgets.Shell; /** * ZetCode Java SWT tutorial * * This program creates a check menu item. * It will show or hide a statusbar. * * Author: Jan Bodnar * Website: zetcode.com * Last modified: June 2015 */ public class CheckMenuItemEx { private Shell shell; private Label status; private MenuItem statItem; public CheckMenuItemEx(Display display) { initUI(display); } public void initUI(Display display) { shell = new Shell(display, SWT.SHELL_TRIM | SWT.CENTER); Menu menuBar = new Menu(shell, SWT.BAR); shell.setMenuBar(menuBar); MenuItem cascadeFileMenu = new MenuItem(menuBar, SWT.CASCADE); cascadeFileMenu.setText("&File"); Menu fileMenu = new Menu(shell, SWT.DROP_DOWN); cascadeFileMenu.setMenu(fileMenu); MenuItem exitItem = new MenuItem(fileMenu, SWT.PUSH); exitItem.setText("&Exit"); MenuItem cascadeViewMenu = new MenuItem(menuBar, SWT.CASCADE); cascadeViewMenu.setText("&View"); Menu viewMenu = new Menu(shell, SWT.DROP_DOWN); cascadeViewMenu.setMenu(viewMenu); statItem = new MenuItem(viewMenu, SWT.CHECK); statItem.setSelection(true); statItem.setText("&View Statusbar"); statItem.addListener(SWT.Selection, new MyStatusListener()); exitItem.addSelectionListener(new MySelectionAdapter()); status = new Label(shell, SWT.BORDER); status.setText("Ready"); FormLayout layout = new FormLayout(); shell.setLayout(layout); FormData labelData = new FormData(); labelData.left = new FormAttachment(0); labelData.right = new FormAttachment(100); labelData.bottom = new FormAttachment(100); status.setLayoutData(labelData); shell.setText("Check menu item"); shell.setSize(300, 250); shell.open(); while (!shell.isDisposed()) { if (!display.readAndDispatch()) { display.sleep(); } } } private class MyStatusListener implements Listener { @Override public void handleEvent(Event event) { if (statItem.getSelection()) { status.setVisible(true); } else { status.setVisible(false); } } } private class MySelectionAdapter extends SelectionAdapter { @Override public void widgetSelected(SelectionEvent e) { shell.getDisplay().dispose(); System.exit(0); } } @SuppressWarnings("unused") public static void main(String[] args) { Display display = new Display(); CheckMenuItemEx ex = new CheckMenuItemEx(display); display.dispose(); } } ``` 在我們的代碼示例中,我們顯示一個檢查菜單項。 如果該復選框已激活,則會顯示狀態欄。 如果不是,狀態欄將被隱藏。 ```java statItem = new MenuItem(viewMenu, SWT.CHECK); ``` `SWT.CHECK`標志將創建一個檢查菜單項。 ```java statItem.setSelection(true); ``` `setSelection()`方法選中或取消選中檢查菜單項。 ```java if (statItem.getSelection()) { status.setVisible(true); } else { status.setVisible(false); } ``` 根據檢查菜單項的狀態,我們顯示或隱藏標簽小部件。 ![Check menu item](https://img.kancloud.cn/7a/99/7a99a08ac93cbc258317ab6922395e1d_296x247.jpg) 圖:選中菜單項 ## 彈出菜單 在下一個示例中,我們創建一個彈出菜單。 彈出菜單也稱為上下文菜單。 當我們右鍵單擊一個對象時,將顯示此類型的菜單。 `PopupMenuEx.java` ```java package com.zetcode; import org.eclipse.swt.SWT; import org.eclipse.swt.widgets.Display; import org.eclipse.swt.widgets.Menu; import org.eclipse.swt.widgets.MenuItem; import org.eclipse.swt.widgets.Shell; /** * ZetCode Java SWT tutorial * * This program creates a popup menu. * * Author: Jan Bodnar * Website: zetcode.com * Last modified: June 2015 */ public class PopupMenuEx { public PopupMenuEx(Display display) { initUI(display); } private void initUI(Display display) { Shell shell = new Shell(display, SWT.SHELL_TRIM | SWT.CENTER); Menu menu = new Menu(shell, SWT.POP_UP); MenuItem minItem = new MenuItem(menu, SWT.PUSH); minItem.setText("Minimize"); minItem.addListener(SWT.Selection, event -> { shell.setMinimized(true); }); MenuItem exitItem = new MenuItem(menu, SWT.PUSH); exitItem.setText("Exit"); exitItem.addListener(SWT.Selection, event -> { shell.getDisplay().dispose(); System.exit(0); }); shell.setText("Popup menu"); shell.setMenu(menu); shell.setSize(300, 250); shell.open(); while (!shell.isDisposed()) { if (!display.readAndDispatch()) { display.sleep(); } } } @SuppressWarnings("unused") public static void main(String[] args) { Display display = new Display(); PopupMenuEx ex = new PopupMenuEx(display); display.dispose(); } } ``` 在我們的代碼示例中,我們創建一個帶有兩個菜單項的彈出菜單。 第一個最小化窗口,第二個終止應用。 ```java Menu menu = new Menu(shell, SWT.POP_UP); ``` 使用`SWT.POP_UP`標志創建彈出菜單。 ```java MenuItem minItem = new MenuItem(menu, SWT.PUSH); minItem.setText("Minimize"); ``` 彈出菜單中的菜單項是普通的推菜單項。 ```java minItem.addListener(SWT.Selection, event -> { shell.setMinimized(true); }); ``` `setMinimized()`方法將窗口最小化。 ```java shell.setMenu(menu); ``` 我們為外殼設置一個彈出菜單。 ![Popup menu](https://img.kancloud.cn/ec/6b/ec6b8322e4ba17aff853635ee5c41137_296x247.jpg) 圖:彈出菜單 ## 簡單的工具欄 菜單將我們可以在應用中使用的命令分組。 使用工具欄可以快速訪問最常用的命令。 在下面的示例中,我們創建一個簡單的工具欄。 `SimpleToolBarEx.java` ```java package com.zetcode; import org.eclipse.swt.SWT; import org.eclipse.swt.graphics.Device; import org.eclipse.swt.graphics.Image; import org.eclipse.swt.widgets.Display; import org.eclipse.swt.widgets.Shell; import org.eclipse.swt.widgets.ToolBar; import org.eclipse.swt.widgets.ToolItem; /** * ZetCode Java SWT tutorial * * This program creates a simple toolbar. * * Author: Jan Bodnar * Website: zetcode.com * Last modified: June 2015 */ public class SimpleToolBarEx { private Image newi; private Image opei; private Image quii; public SimpleToolBarEx(Display display) { initUI(display); } @SuppressWarnings("unused") public void initUI(Display display) { Shell shell = new Shell(display, SWT.SHELL_TRIM | SWT.CENTER); Device dev = shell.getDisplay(); try { newi = new Image(dev, "new.png"); opei = new Image(dev, "open.png"); quii = new Image(dev, "quit.png"); } catch (Exception e) { System.out.println("Cannot load images"); System.out.println(e.getMessage()); System.exit(1); } ToolBar toolBar = new ToolBar(shell, SWT.BORDER); ToolItem item1 = new ToolItem(toolBar, SWT.PUSH); item1.setImage(newi); ToolItem item2 = new ToolItem(toolBar, SWT.PUSH); item2.setImage(opei); ToolItem separator = new ToolItem(toolBar, SWT.SEPARATOR); ToolItem item3 = new ToolItem(toolBar, SWT.PUSH); item3.setImage(quii); toolBar.pack(); item3.addListener(SWT.Selection, event -> { shell.getDisplay().dispose(); System.exit(0); }); shell.setText("Simple toolbar"); shell.setSize(300, 250); shell.open(); while (!shell.isDisposed()) { if (!display.readAndDispatch()) { display.sleep(); } } } @Override public void finalize() { newi.dispose(); opei.dispose(); quii.dispose(); } public static void main(String[] args) { Display display = new Display(); SimpleToolBarEx ex = new SimpleToolBarEx(display); ex.finalize(); display.dispose(); } } ``` 該示例顯示了一個工具欄和三個工具項。 ```java ToolBar toolBar = new ToolBar(shell, SWT.BORDER); ``` 工具欄已創建。 ```java ToolItem item1 = new ToolItem(toolBar, SWT.PUSH); item1.setImage(newi); ``` 我們創建一個帶有圖像的工具項。 ```java ToolItem separator = new ToolItem(toolBar, SWT.SEPARATOR); ``` 在這里,我們創建一個垂直分隔符。 ![Toolbar](https://img.kancloud.cn/be/be/bebe35bbc00d174d9bf329f3591fa9a6_296x247.jpg) 圖:工具欄 在 Java SWT 教程的這一章中,我們展示了如何使用菜單和工具欄。
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看