程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> JAVA編程 >> 關於JAVA >> 應用Java編寫圖形化的菜單的教程

應用Java編寫圖形化的菜單的教程

編輯:關於JAVA

應用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的經常使用辦法有:

  • add(JMenu m):將菜單m參加到菜單條中。
  • countJMenus():取得菜單條中菜單條數。
  • getJMenu(int p):獲得菜單條中的菜單。
  • remove(JMenu m):刪除菜單條中的菜單m。

2. 菜單
由類JMenu創立的對象就是菜單。類JMenu的經常使用辦法以下:

  • JMenu():樹立一個空題目的菜單。
  • JMenu(String s):樹立一個題目為s的菜單。
  • add(JMenuItem item):向菜單增長由參數item指定的菜單選項。
  • add(JMenu menu):向菜單增長由參數menu指定的菜單。完成在菜單嵌入子菜單。
  • addSeparator():在菜單選項之間畫一條分隔線。
  • getItem(int n):獲得指定索引處的菜單項。
  • getItemCount():獲得菜單項數量。
  • insert(JMenuItem item,int n):在菜單的地位n拔出菜單項item.
  • remove(int n):刪除菜單元置n的菜單項
  • removeAll():刪除菜單的一切菜單項。

3.菜單項
類JMenuItem 的實例就是菜單項。類JMenuItem的經常使用辦法以下:

  • JMenuItem():結構無題目的菜單項。
  • JMenuItem(String s):結構有題目的菜單項。
  • setEnabled(boolean b):設置以後單項能否可被選擇。
  • isEnabled():前往以後菜單項能否可被用戶選擇。
  • getLabel():獲得菜單項的稱號。
  • setLabel():設置菜單選項的稱號。
  • addActionListener(ActionListener e):為菜單項設置監督器。監督器接收點擊某個菜單的舉措事宜。

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

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved