應用Java編寫圖形化的菜單的教程。本站提示廣大學習愛好者:(應用Java編寫圖形化的菜單的教程)文章只能為提供參考,不一定能成為您想要的結果。以下是應用Java編寫圖形化的菜單的教程正文
有兩品種型的菜單:下拉式菜單和彈出式菜單。本章只評論辯論下拉式菜單編程辦法。菜單與JComboBox和JCheckBox分歧,它們在界面中是一向可見的。菜單與JComboBox的雷同的地方是每次只可選擇一個項目。
鄙人拉式菜單或彈出式菜單當選擇一個選項就發生一個ActionEvent事宜。該事宜被發送給誰人選項的監督器,事宜的意義由監督器說明。
菜單條、菜單和菜單項
下拉式菜單經由過程湧現在菜單條上的名字可視化表現,菜單條(JMenuBar)平日湧現在JFrame的頂部,一個菜單條顯示多個下拉式菜單的名字。可以用兩種方法來激活下拉式菜單。一種是按下鼠標的按鈕,並堅持按下狀況,挪動鼠標,直至釋放鼠標完成選擇,高亮度顯示的菜單項即為所選擇的。另外一種方法是當光標位於菜單條中的菜單名上時,點擊鼠標,在這類情形下,菜單會睜開,且高亮度顯示菜單項。
一個菜單條可以放多個菜單(JMenu),每一個菜單又可以有很多菜單項(JMenuItem)。例如,Eclipse情況的菜單條有File、Edit、Source、Refactor等菜單,每一個菜單又有很多菜單項。例如,File菜單有New、Open File、Close 、Close All等菜單項。
向窗口增設菜單的辦法是:先創立一個菜單條對象,然後再創立若干菜單對象,把這些菜單對象放在菜單條裡,再按請求為每一個菜單對象添加菜單項。
菜單中的菜單項也能夠是一個完全的菜單。因為菜單項又可所以另外一個完全菜單,是以可以結構一個條理狀菜單構造。
1.菜單條
類JMenuBar的實例就是菜單條。例如,以下代碼創立菜單條對象menubar:
JMenuBar menubar = new JMenuBar();
在窗口中增設菜單條,必需應用JFrame類中的setJMenuBar()辦法。例如,代碼:
setJMenuBar(menubar);
類JMenuBar的經常使用辦法有:
2. 菜單
由類JMenu創立的對象就是菜單。類JMenu的經常使用辦法以下:
3.菜單項
類JMenuItem 的實例就是菜單項。類JMenuItem的經常使用辦法以下:
4. 處置菜單事宜
菜單的事宜源是用鼠標點擊某個菜單項。處置該事宜的接口是ActionListener,要完成的接口辦法是actionPerformed(ActionEvent e),取得事宜源的辦法getSource().
【例】小運用法式表示窗口有菜單條的完成辦法。設有一個按鈕,當按鈕處於翻開窗口狀況時,單擊按鈕將翻開一個窗口,窗口設有一個菜單條,有兩個菜單,每一個菜單又各有三個菜單項。當一個菜單項被選中時,菜單項監督辦法在文本框中顯示響應菜單項被選中字樣。
import java.applet.* import javax.swing.*; import java.awt.*; import java.awt.event.*; class MenuWindow extends JFrame implements ActionListener{ public static JtextField text; private void addItem(JMenu Menu,String menuName,ActionListener listener){ JMenuItem anItem = new JMenuItem(menuName); anItem.setActionCommand(menuName); anItem.addActionListener(listener); Menu.add(anItem); } public MenuWindow(String s,int w,int h){ setTitle(s); Container con = this.getContentPane(); con.setLayout(new BorderLayout()); this.setLocation(100,100); this.setSize(w,h); JMenu menu1 = new JMenu("體育"); addItem(menu1," 跑步",this); addItem(menu1," 跳繩",this); addItem(menu1,"打球",this); JMenu menu2 = JMenu("文娛"); addItem(menu2,"唱歌",this); addItem(menu2,"舞蹈",this); addItem(menu2,"游戲",this); JMenuBar menubar = new JMenuBar(); text = new JTextField(); menubar.add(menu1); menubar.add(menu2); setJMenuBar(MenuBar); con.add(text,BorderLayout.NORTH); } public void actionPerformed(ActionEvent e){ text.setText(e.getActionCommand()+"菜單項被選中!"); } } public class Example6_5 extends Applet implements ActionListener{ MenuWindow window; JButton button; boolean bflg; public void init(){ button = new JButton("翻開我的體育文娛之窗");bflg =true; window = new MenuWindow("體育文娛之窗",100,100); button.addActionListener(this); add(button); } public void actionPerformed(ActionEvent e){ if(e.getSource()==button){ if(bflg){ window.setVisible(true); bflg = false; button.setLabel("封閉我的體育文娛之窗"); } else{ window.setVisible(false); bflg = true; button.setLabel("翻開我的體育文娛之窗"); } } } }
5. 嵌入子菜單
創立了一個菜單,並創立多個菜單項,個中某個菜單項又是一個(含其他菜單項的)菜單,這就組成菜單嵌套。例如,將上述法式中的有關代碼改成以下:
Menu menu1,menu2,item4; MenuItem item3,item5,item6,item41,item42;
另拔出以下代碼創立item41和item42菜單項,並把它們參加到item4菜單中:
item41= new MenuItem(“西方紅”); item42 = new MenuItem(“牡丹”); item4.add(item41); item4.add(item42);
則點擊item4菜單時,又會翻開兩個菜單項供選擇。
6. 向菜單增長加入項
增設一個新的菜單項,對該菜單項參加監督,對應的監督辦法中應用System.exit()辦法,就可以完成單擊該菜單項時加入Java運轉情況。例如,以下表示代碼:
… item7 = new MenuItem(“加入”); item7.addActionListener(this); … public void actionPerformed(ActionEvent e){ if(e.getSource()==item7){ System.exit(0); } }
7.設置菜單項的快捷鍵
用MenuShortcut類為菜單項設置快捷鍵。結構辦法是MenuShortcut(int key)。個中key可以取值KeyEvent.VK_A至KenEvent.VK_Z,也能夠取 ‘a'到 ‘z'鍵碼值。菜單項應用setShortcut(MenuShortcut k)辦法來設置快捷鍵。例如,以下代碼設置字母e為快捷鍵。
class Herwindow extends Frame implements ActionListener{ MenuBar menbar; Menu menu; MenuItem item; MenuShortcut shortcut = new MenuShortcut(KeyEvent.VK_E); … item.setShortcut(shortcut); … }
選擇框菜單項
菜單也能夠包括具有耐久的選擇狀況的選項,這類特別的菜單可由JCheckBoxMenuItem類來界說。JCheckBoxMenuItem對象像選擇框一樣,能表現一個選項被選中與否,也能夠作為一個菜單項加到下拉菜單中。點擊JCheckBoxMenuItem菜單時,就會在它的右邊湧現打勾符號或消除打勾符號。例如,在例6.5法式的類MenuWindow中,將代碼
addItem(menu1,“跑步”,this);addItem(menu1,”跳繩”,this);
改寫成以下代碼,就將兩個通俗菜單項“跑步“和“跳繩”改成兩個選擇框菜單項:
JCheckBoxMenuItem item1 = new JCheckBoxMenuItem(“跑步”); JCheckBoxMenuItem item2 = new JCheckBoxMenuItem(“跳繩”); item1.setActionCommand(“跑步”); item1.addActionListener(this); menu1.add(item1); item2.setActionCommand(“跳繩”); item2.addActionListener(this); menu1.add(item2);