java 24 - 7 GUI之 創建多級菜單窗體


需求:
  創建多級菜單

步驟:
  A:創建窗體對象(並設置屬性和布局)
  B:創建菜單欄
  C:創建菜單和子菜單
  D:逐步添加菜單(子菜單添加到菜單中,菜單添加到菜單欄中)
  E:窗體中設置菜單欄(菜單欄並不是添加,而是設置)
  F:設置各個菜單對應的監聽事件
  G:設置窗體關閉監聽時間
  H:設置顯示窗口

 

代碼:

  1 public class FrameText4 {
  2 
  3     public static void main(String[] args) {
  4 
  5         // 創建窗體對象
  6         final Frame f = new Frame("多級菜單");
  7         // 設置窗體屬性
  8         f.setBounds(300, 300, 500, 500);
  9         f.setLayout(new FlowLayout());
 10 
 11         //獲取原來的標題
 12         final String str = f.getTitle();
 13         
 14         // 創建菜單欄
 15         MenuBar m = new MenuBar();
 16 
 17         // 創建菜單
 18         Menu m1 = new Menu("操作");
 19         Menu m2 = new Menu("更改標題");
 20 
 21         // 創建子菜單
 22         final MenuItem mi1 = new MenuItem("N級菜單");
 23         final MenuItem mi2 = new MenuItem("M級菜單");
 24         MenuItem mi3 = new MenuItem("恢復標題");
 25         MenuItem mi4 = new MenuItem("退出");
 26         MenuItem mi5 = new MenuItem("打開記事本");
 27 
 28         // 逐步添加
 29         // 子菜單添加到菜單中
 30         m2.add(mi1);
 31         m2.add(mi2);
 32         m2.add(mi3);
 33         m1.add(m2);
 34         m1.add(mi5);
 35         m1.add(mi4);
 36         
 37         // 菜單添加到菜單欄中
 38         m.add(m1);
 39 
 40         // 窗體中設置菜單欄
 41         f.setMenuBar(m);
 42 
 43         // 設置各個菜單對應的監聽事件
 44         mi1.addActionListener(new ActionListener() {
 45 
 46             public void actionPerformed(ActionEvent e) {
 47                 // 更改標題欄的名稱
 48                 // 為了以后方便修改,首先獲取mi1菜單的名稱,再進行更改
 49                 f.setTitle(mi1.getLabel());
 50                 // 把窗口的標題名稱改為mi1的標簽
 51             }
 52         });
 53         
 54         mi2.addActionListener(new ActionListener(){
 55 
 56             public void actionPerformed(ActionEvent e) {
 57                 //如mil1
 58                 f.setTitle(mi2.getLabel());
 59             }
 60             
 61         });
 62         
 63         mi3.addActionListener(new ActionListener(){
 64             //這個跟上面2個有所不同,因為是恢復原來的標題。
 65             //所以得在前面創建個字符串得到開始的標題,然后直接拿來更改就可以
 66             public void actionPerformed(ActionEvent e) {
 67                 f.setTitle(str);
 68             }        
 69         });
 70         
 71         //退出系統
 72         mi4.addActionListener(new ActionListener(){
 73 
 74             public void actionPerformed(ActionEvent e) {
 75                 //退出系統
 76                 System.exit(0);        
 77             }
 78             
 79         });
 80         
 81         //打開記事本
 82         mi5.addActionListener(new ActionListener(){
 83 
 84             public void actionPerformed(ActionEvent e) {
 85                 //Runtime 使應用程序能夠與其運行的環境相連接  86                 //public static Runtime getRuntime()返回與當前 Java 應用程序相關的運行時對象。  87                 //public Process exec(String command)在單獨的進程中執行指定的字符串命令。 
 88                 
 89                 Runtime r = Runtime.getRuntime();
 90                 try {
 91                     r.exec("notepad");
 92                 } catch (IOException e1) {
 93                     // TODO Auto-generated catch block
 94                     e1.printStackTrace();
 95                 }
 96             
 97             }
 98             
 99         });
100         
101         //設置窗口關閉監聽事件
102         f.addWindowListener(new WindowAdapter(){
103             public void windowClosing(WindowEvent e) {
104                 System.exit(0);
105             }
106         });
107         
108         //使窗體顯示
109         f.setVisible(true);
110     }
111 
112 }

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM