GUI編程--初級篇
一.元素介紹
1.JFrame類:
1)概念:其實力稱為視窗,屬於底層容器,可以與作業系統直接互動。
2)常用方法:
a.Jframe()方法建立一個無標題的視窗
b.Jframe(Strings)方法建立一個標題為s的視窗
c.Public voidsetVisible(booleanb)設定視窗是否可見
d.Public void dispose()撤消當前視窗,釋放資源
e.Public void setDefaultCloseOperation ( int operation) 設定單擊視窗右上方關閉按鈕後程式執行的操作
2.Jmenu類:
概念:Jmenu類負責建立菜單。
3.JmenuItem類:
概念:JmenuItem類負責建立嵌入子功能表。 4.JMenuBar類:
概念:JMenuBar是Jframe的一個子類,Jframe有一個把菜單條放置到視窗中的方法SetMenuBar(JMenuBarbar)。 二.記事本代碼 1.建立DialongDemo類並且繼承JFrame。
import java.awt.event.InputEvent;import javax.swing.*;import com.sun.glass.events.KeyEvent;public class DialongDemo extends JFrame {//定義JMenuBar menuBar;JMenu menu1,menu2,menu3,menu4,menu5;JMenuItem menu11,menu12,menu13,menu14,menu15,menu16,menu17;JMenuItem menu21,menu22,menu23,menu24,menu25,menu26,menu27,menu28,menu29,menu210,menu211;JMenuItem menu31,menu32;JMenuItem menu41;JMenuItem menu51,menu52;public DialongDemo(){//空的構造方法}//帶參的構造方法public DialongDemo(String s,int x,int y,int w,int h){init(s);setBounds(x,y,w,h);setVisible(true);setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE); }//init方法的實現public void init(String s){setTitle(s);menuBar = new JMenuBar();menu1 = new JMenu("檔案");menu2 = new JMenu("編輯");menu3 = new JMenu("格式");menu4 = new JMenu("查看");menu5 = new JMenu("協助");//將menuBar組件加入到視窗setJMenuBar(menuBar);//將menu1等組件加入到menuBar中menuBar.add(menu1);menuBar.add(menu2);menuBar.add(menu3);menuBar.add(menu4);menuBar.add(menu5);//檔案項menu11 = new JMenuItem("建立");menu12 = new JMenuItem("開啟");menu13 = new JMenuItem("儲存");menu14 = new JMenuItem("另存新檔");menu15 = new JMenuItem("版面設定");menu16 = new JMenuItem("列印");menu17 = new JMenuItem("退出");menu1.add(menu11);menu1.add(menu12);menu1.add(menu13);menu1.add(menu14);menu1.addSeparator(); menu1.add(menu15);menu1.add(menu16);menu1.addSeparator(); menu1.add(menu17);//編輯項menu21 = new JMenuItem("撤銷");menu22 = new JMenuItem("剪貼");menu23 = new JMenuItem("複製");menu24 = new JMenuItem("粘貼");menu25 = new JMenuItem("刪除");menu26 = new JMenuItem("尋找");menu27 = new JMenuItem("尋找下一個");menu28 = new JMenuItem("替換");menu29 = new JMenuItem("轉到");menu210 = new JMenuItem("全選");menu211= new JMenuItem("時間/日期");menu2.add(menu21);menu2.addSeparator();menu2.add(menu22);menu2.add(menu23);menu2.add(menu24);menu2.add(menu25);menu2.addSeparator();menu2.add(menu26);menu2.add(menu27);menu2.add(menu28);menu2.add(menu29);menu2.addSeparator();menu2.add(menu210);menu2.add(menu211);//格式menu31 = new JMenuItem("自動換行");menu32 = new JMenuItem("字型");menu3.add(menu31);menu3.add(menu32);//狀態列menu41=new JMenuItem("狀態列");menu4.add(menu41);//協助menu51 = new JMenuItem("查看協助");menu52 = new JMenuItem("關於記事本");menu5.add(menu51);menu5.addSeparator();menu5.add(menu52);//設定快速鍵ctrl+*menu11.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_N,InputEvent.CTRL_MASK)); menu12.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_O,InputEvent.CTRL_MASK)); menu13.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_S,InputEvent.CTRL_MASK)); menu16.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_P,InputEvent.CTRL_MASK)); menu21.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_Z,InputEvent.CTRL_MASK)); menu22.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_X,InputEvent.CTRL_MASK)); menu23.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_C,InputEvent.CTRL_MASK)); menu24.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_V,InputEvent.CTRL_MASK));menu25.setAccelerator(KeyStroke.getKeyStroke("Del"));menu26.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_F,InputEvent.CTRL_MASK)); menu27.setAccelerator(KeyStroke.getKeyStroke("F3"));menu28.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_H,InputEvent.CTRL_MASK)); menu29.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_G,InputEvent.CTRL_MASK)); menu210.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_V,InputEvent.CTRL_MASK));menu211.setAccelerator(KeyStroke.getKeyStroke("F5"));//文字物件JTextArea area = new JTextArea(1065,570);add(area);}}
2.建立主方法Main來實現
public class Main {public static void main(String[] args) {//調用帶參建構函式DialongDemo dialongDemo=new DialongDemo("建立 文字文件",100,100,1085,635);}}
三.結果展示: