<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>

                ??一站式輕松地調用各大LLM模型接口,支持GPT4、智譜、豆包、星火、月之暗面及文生圖、文生視頻 廣告
                # 菜單和工具欄 > 原文: [http://zetcode.com/gui/jrubyswing/menustoolbars/](http://zetcode.com/gui/jrubyswing/menustoolbars/) 在 JRuby Swing 編程教程的這一部分中,我們將使用菜單和工具欄。 菜單欄是 GUI 應用中最可見的部分之一。 它是位于各個菜單中的一組命令。 在控制臺應用中,您必須記住所有這些神秘命令,在這里,我們將大多數命令分組為邏輯部分。 有公認的標準可以進一步減少學習新應用的時間。 菜單將我們可以在應用中使用的命令分組。 使用工具欄可以快速訪問最常用的命令。 ## 簡單菜單 第一個示例將顯示一個簡單的菜單。 ```rb #!/usr/local/bin/jruby # ZetCode JRuby Swing tutorial # # This program creates a simple # menu. # # author: Jan Bodnar # website: www.zetcode.com # last modified: December 2010 include Java import java.awt.event.KeyEvent import javax.swing.JButton import javax.swing.JFrame import javax.swing.JMenuBar import javax.swing.JMenuItem import javax.swing.JMenu import javax.swing.ImageIcon import java.lang.System class Example < JFrame def initialize super "Simple menu" self.initUI end def initUI menubar = JMenuBar.new icon = ImageIcon.new "exit.png" fileMenu = JMenu.new "File" fileMenu.setMnemonic KeyEvent::VK_F itemExit = JMenuItem.new "Exit", icon itemExit.addActionListener do |e| System.exit 0 end itemExit.setMnemonic KeyEvent::VK_C itemExit.setToolTipText "Exit application" fileMenu.add itemExit menubar.add fileMenu self.setJMenuBar menubar self.setDefaultCloseOperation JFrame::EXIT_ON_CLOSE self.setSize 250, 200 self.setLocationRelativeTo nil self.setVisible true end end Example.new ``` 我們的示例將顯示一個菜單項。 通過選擇退出菜單項,我們關閉應用。 ```rb menubar = JMenuBar.new ``` 在這里,我們創建一個菜單欄。 ```rb icon = ImageIcon.new "exit.png" ``` 我們將在菜單項中顯示一個圖標。 ```rb fileMenu = JMenu.new "File" fileMenu.setMnemonic KeyEvent::VK_F ``` 我們創建一個菜單對象。 菜單是包含`JMenuItem`的彈出窗口。 菜單位于菜單欄上。 也可以通過鍵盤訪問菜單。 要將菜單綁定到特定鍵,我們使用`setMnemonic`方法。 在我們的情況下,可以使用`ALT + F`快捷方式打開菜單。 ```rb itemExit = JMenuItem.new "Close", icon itemExit.addActionListener do |e| System.exit 0 end ``` 在這里,我們創建一個`JMenuItem`。 菜單項是顯示在所選菜單的彈出窗口中的對象。 我們還為菜單項和工具提示提供了快捷方式。 ```rb fileMenu.add itemExit ``` 菜單項被添加到菜單中。 ```rb menubar.add fileMenu ``` 菜單添加到菜單欄。 ![Simple menu](https://img.kancloud.cn/69/f7/69f7c64518d8e3341aaf371ee4e94c63_250x200.jpg) 圖:簡單菜單 ## 子菜單 子菜單是插入另一個菜單對象的菜單。 下一個示例對此進行了演示。 ```rb #!/usr/local/bin/jruby # ZetCode JRuby Swing tutorial # # This program creates a # submenu. # # author: Jan Bodnar # website: www.zetcode.com # last modified: December 2010 include Java import java.awt.event.KeyEvent import java.awt.event.ActionEvent import javax.swing.JFrame import javax.swing.ImageIcon import javax.swing.JMenuBar import javax.swing.JMenu import javax.swing.JMenuItem import javax.swing.KeyStroke import java.lang.System class Example < JFrame def initialize super "Submenu" self.initUI end def initUI menubar = JMenuBar.new iconNew = ImageIcon.new "new.png" iconOpen = ImageIcon.new "open.png" iconSave = ImageIcon.new "save.png" iconExit = ImageIcon.new "exit.png" fileMenu = JMenu.new "File" fileMenu.setMnemonic KeyEvent::VK_F imp = JMenu.new "Import" imp.setMnemonic KeyEvent::VK_M newsf = JMenuItem.new "Import newsfeed list..." bookm = JMenuItem.new "Import bookmarks..." mail = JMenuItem.new "Import mail..." imp.add newsf imp.add bookm imp.add mail fileNew = JMenuItem.new "New", iconNew fileNew.setMnemonic KeyEvent::VK_N fileOpen = JMenuItem.new "Open", iconOpen fileNew.setMnemonic KeyEvent::VK_O fileSave = JMenuItem.new "Save", iconSave fileSave.setMnemonic KeyEvent::VK_S fileExit = JMenuItem.new "Exit", iconExit fileExit.addActionListener do |e| System.exit 0 end fileExit.setMnemonic KeyEvent::VK_C fileExit.setToolTipText "Exit application" fileExit.setAccelerator KeyStroke.getKeyStroke KeyEvent::VK_W, ActionEvent::CTRL_MASK fileMenu.add fileNew fileMenu.add fileOpen fileMenu.add fileSave fileMenu.addSeparator fileMenu.add imp fileMenu.addSeparator fileMenu.add fileExit menubar.add fileMenu self.setJMenuBar menubar self.setDefaultCloseOperation JFrame::EXIT_ON_CLOSE self.setSize 320, 220 self.setLocationRelativeTo nil self.setVisible true end end Example.new ``` 在示例中,文件菜單的子菜單中有三個選項。 ```rb imp = JMenu.new "Import" ... fileMenu.add imp ``` 子菜單與其他任何普通菜單一樣。 它是用相同的方式創建的。 我們只需將菜單添加到現有菜單即可。 ```rb fileExit.setAccelerator KeyStroke.getKeyStroke KeyEvent::VK_W, ActionEvent::CTRL_MASK ``` 加速器是啟動菜單項的快捷鍵。 在我們的情況下,通過按 `Ctrl + W` 關閉我們的應用。 ```rb fileMenu.addSeparator ``` 分隔符是一條水平線,用于在視覺上分隔菜單項。 這樣,我們可以將項目分組到一些合理的位置。 ![Submenu](https://img.kancloud.cn/ad/a1/ada1365dbbbd63d26c86e8706b23027f_320x220.jpg) 圖:子菜單 ## 彈出菜單 在下一個示例中,我們創建一個彈出菜單。 ```rb #!/usr/local/bin/jruby # ZetCode JRuby Swing tutorial # # This program creates a # popup menu. # # author: Jan Bodnar # website: www.zetcode.com # last modified: December 2010 include Java import java.awt.event.MouseAdapter import javax.swing.JFrame import javax.swing.JPopupMenu import javax.swing.JMenuItem import java.lang.System class MouseAction < MouseAdapter def mouseReleased e source = e.source menu = source.getMenu if e.getButton == e.button menu.show e.getComponent, e.getX, e.getY end end end class Example < JFrame def initialize super "Popup menu" self.initUI end def initUI @menu = JPopupMenu.new menuItemBeep = JMenuItem.new "Beep" menuItemBeep.addActionListener do |e| toolkit = getToolkit toolkit.beep end @menu.add menuItemBeep menuItemExit = JMenuItem.new "Exit" menuItemExit.addActionListener do |e| System.exit 0 end @menu.add menuItemExit self.addMouseListener MouseAction.new self.setDefaultCloseOperation JFrame::EXIT_ON_CLOSE self.setSize 250, 200 self.setLocationRelativeTo nil self.setVisible true end def getMenu @menu end end Example.new ``` 在我們的示例中,我們創建一個帶有兩個菜單項的彈出菜單。 ```rb @menu = JPopupMenu.new menuItemBeep = JMenuItem.new "Beep" ``` 我們創建一個彈出菜單和一個菜單項。 ```rb self.addMouseListener MouseAction.new ``` 我們將鼠標監聽器添加到`Example`類。 鼠標監聽器是`MouseAction`用戶定義的類,該類繼承自`MouseAdapter`。 這是一個便利類,可實現所有五個必需的方法。 方法為空。 除了實現所有五個方法之外,我們僅實現所需的方法。 ```rb class MouseAction < MouseAdapter def mouseReleased e ... ``` 在我們的`MouseAction`類中,我們實現了`mouseReleased`方法。 ```rb if e.getButton == e.button: menu.show e.getComponent, e.getX, e.getY end ``` 我們在鼠標單擊的 x,y 坐標處顯示彈出菜單窗口。 ![Popup menu`](https://img.kancloud.cn/6e/8b/6e8bf35706d5e026f405b56b252e10ae_250x200.jpg) 圖:彈出菜單 ## 工具欄 菜單將我們可以在應用中使用的命令分組。 使用工具欄可以快速訪問最常用的命令。 在 Swing 中,`JToolBar`類在應用中創建一個工具欄。 ```rb #!/usr/local/bin/jruby # ZetCode JRuby Swing tutorial # # This program creates a # toolbar. # # author: Jan Bodnar # website: www.zetcode.com # last modified: December 2010 include Java import java.awt.BorderLayout import javax.swing.JFrame import javax.swing.ImageIcon import javax.swing.JButton import javax.swing.JMenuBar import javax.swing.JMenu import javax.swing.JToolBar import java.lang.System class Example < JFrame def initialize super "Toolbar" self.initUI end def initUI menubar = JMenuBar.new fileMenu = JMenu.new "File" menubar.add fileMenu toolbar = JToolBar.new iconExit = ImageIcon.new "exit2.png" exitButton = JButton.new iconExit exitButton.addActionListener do |e| System.exit 0 end toolbar.add exitButton self.add toolbar, BorderLayout::NORTH self.setJMenuBar menubar self.setDefaultCloseOperation JFrame::EXIT_ON_CLOSE self.setSize 350, 250 self.setLocationRelativeTo nil self.setVisible true end end Example.new ``` 該示例創建一個帶有一個退出按鈕的工具欄。 ```rb toolbar = JToolBar.new ``` 工具欄已創建。 ```rb exitButton = JButton.new iconExit ... toolbar.add exitButton ``` 我們創建一個按鈕并將其添加到工具欄。 ```rb self.add toolbar, BorderLayout::NORTH ``` 工具欄位于`BorderLayout`管理器的北部。 `BorderLayout`管理器是`JFrame`容器的默認布局管理器。 ![Toolbar](https://img.kancloud.cn/f1/e4/f1e4d8a17b9eaab44d0b9a94669e8d83_350x250.jpg) 圖:工具欄 在 JRuby Swing 教程的這一部分中,我們提到了菜單和工具欄。
                  <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>

                              哎呀哎呀视频在线观看