java的GUI(圖形使用者介面)
GUI英文全稱為Graphical User Interface(圖形使用者介面)
CLI英文全稱為Command Line User Interface(命令列使用者介面)
在java中圖形介面用兩個包分別是Awt和Swing
java.awt:Abstract Window Toolkit(抽象視窗工具包)需要呼叫本地系統方法實現功能,屬於重量級控制元件。
javax.swing:在awt的基礎上,建立的一套圖形介面系統,其中提供了更多的元件,而且完全是java實現的,增強了移植性,屬於輕量級控制,跨平臺強
繼承關係圖:
Component|-------Container
|-------Window
|-------Frame窗體
|-------Dialog對話方塊
|------FileDialog檔案對話方塊
|--------Panel
|------Button
|------Lable
|------Checkbox
|------TextComponent
|------TextArea
|------TextField
Container:為容器,是一個特殊的元件,該元件中可以通過add方法新增其他元件進來
常見的佈局管理器:
FlowLayout(流式佈局管理器)
1、從左到右順序排列
2、Danel預設的佈局管理器
BorderLayout(邊界佈局管理器)
1、排列方式是一次是東南西北中
2、Frame預設的佈局管理器
GridLayout(網格佈局管理器)
1、規則的juzhen
CardLayout(卡片佈局管理器)
1、選擇卡
GridBagLayout(網格包佈局管理器)
1、非規則的矩陣
做圖形介面一定要先畫出佈局在用程式畫出
圖形化介面是由另一個執行緒控制的
Frame預設為邊界佈局
setSize(大小)
setLocation(位置)
setLayout(佈局模式)
add(新增控制元件)
setVisible(true)顯示
事件監聽器機制的組成:
事件監聽器機制的特點:
1、事件源:就是awt和swing包中的哪些圖形介面的元件
2、事件:每一個事件源都有自己所對應的事件和共性事件
3、監聽器:將可以觸發的某一事件的動作都已封裝到了監聽器中
以上三者,在java中都已封裝好了,直接獲取其物件來用就可以了
4、事件處理:這要自己實現
下面是一個GUI的程式:
如何打jar包,並實現雙擊自動執行package jar; import java.awt.*; import java.awt.event.*; class MyMenuTest { private Frame f; private MenuBar mb; private Menu mainMenu; private Menu closeMenu; private Menu childMenu; private MenuItem menuItem; private MenuItem menuItem1; private FileDialog fdLoad; private FileDialog fdSave; MyMenuTest() { init();//初始化窗體 } public void init() { f=new Frame("我的視窗");//建立一個帶有我的視窗的視窗 f.setBounds(300,100,600,500);//設定視窗的位置和大小 mb=new MenuBar();//建立一個選單欄 mainMenu=new Menu("檔案");//建立一個選單 childMenu=new Menu("操作");//建立一個子選單 menuItem=new MenuItem("開啟");//建立一個選單選項 menuItem1=new MenuItem("儲存"); childMenu.add(menuItem);//將選單選項新增到選單上 childMenu.add(menuItem1); mainMenu.add(childMenu);將子選單新增到選單上 closeMenu=new Menu("關閉"); mb.add(mainMenu); mb.add(closeMenu); f.setMenuBar(mb);//將選單欄新增到視窗上 fdLoad=new FileDialog(f,"開啟",FileDialog.LOAD);//建立一個開啟檔案的視窗 fdSave=new FileDialog(f,"儲存",FileDialog.SAVE);//建立一個儲存檔案的視窗 MyEvent();//呼叫事件方法 f.setVisible(true);//顯示窗體 } public void MyEvent() { f.addWindowListener(new WindowAdapter(){//為窗體新增監聽事件 public void windowClosing(WindowEvent e) { System.exit(0);//關閉程式 } }); menuItem.addActionListener(new ActionListener()//為選單選項新增監聽事件,注意選單是不可以新增監聽事件的 { public void actionPerformed(ActionEvent e) { fdLoad.setVisible(true); } }); menuItem1.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { fdSave.setVisible(true); } }); } public static void main(String[] args) { new MyMenuTest();//建立窗體物件 } }
1、將多個類檔案包含在包中
2、建立一個文字檔案在裡面寫上
Main-Class:空格+包名.類名+換行
例如類名為:a.txt
3、打jar包
jar -cvfm my.jar a.txt 包名
4、通過解壓程式看jar包中的資訊
5、需要要配置關聯檔案,將其與jdk\bin\javaw.exe關聯
6、可以雙擊了