1. 程式人生 > >java的GUI(圖形使用者介面)

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的程式:

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();//建立窗體物件
	}
}
如何打jar包,並實現雙擊自動執行
1、將多個類檔案包含在包中

2、建立一個文字檔案在裡面寫上

Main-Class:空格+包名.類名+換行

例如類名為:a.txt

3、打jar包

jar -cvfm my.jar a.txt 包名

4、通過解壓程式看jar包中的資訊

5、需要要配置關聯檔案,將其與jdk\bin\javaw.exe關聯

6、可以雙擊了