Java編寫圖形用戶界面知識點
1、概念:抽象窗口工具包AWT(Abstract Window Toolkit)是Java提供的建立圖形用戶界面GUI(Graphics User Interface)的開發包,AWT可用於java的Applet和Application中。
2、Component類的部分重要的成員方法包括:
- getComponentAt(int x,int y)獲得座標(x,y)上的組件對象
- getFont() 獲得組件的字體
- getForeground() 獲得組件的前景色
- getName() 獲得組件的名字
- getSize() 獲得組件的大小
- paint(Graphics g) 繪製組件
- repaint() 重新繪製組件
- update() 刷新組件
- setVisible(Boolean b) 設置組件是否可見
- setSize(Dimension d) 設置組件的大小
- setName(String name) 設置組件的名字
3、容器 java.awt.Container是Component的子類。
常用容器:Window、Panel、ScrollPane,常用的有Panel(面板),Frame(窗口),Applet。
4、如果用戶要親自設置組件大小或位置,則應該取消容器的佈局管理器,方法爲:setLayout(null); 然後再調用setLocation()、setSize()、setBounds()。
5、LayoutManager(佈局管理器)的相關類主要包括:FlowLayout、BorderLayout、GridLayout、CardLayout、GridBagLayout 。
6、BorderLayout 佈局管理器是Windows、Frame和Dialog的默認管理器。
7.爲實現窗口關閉功能
public void windowClosing(WindowEvent e){System.exit(1);}
8、java.awt.event包中定義的事件適配器類 包括以下幾個:
- ComponentAdapter(組件適配器)
- ContainerAdapter(容器適配器)
- FocusAdapter(焦點適配器)
- KeyAdapter(鍵盤適配器)
- MouseAdapter(鼠標適配器)
- MouseMotionAdapter(鼠標運動適配器)
- WindowAdapter(窗口適配器)
9、Choice(下拉式菜單)用 ItemListener 接口來監聽
10、一個應用程序必須繼承 Canvas 類才能獲得有用的功能。如果想在畫布上完成一些圖形處理,則Canvas類中的paint() 方法必須被重寫。當在Canvas組件中輸入字符時,必須先調用
requestFocus() 方法。
11、單行文本輸入區(TextField)只能顯示一行,當回車鍵被按下時,會發生ActionEvent事件,可以通過ActionListener 中的 actionPerfomed() 方法對事件進行相應處理。可以使用setEditable(boolean) 方法設置爲只讀屬性。
12、事件適配器提供了一種簡單的實現監聽器的手段。當需要多種監聽器或此類已有父類時就無法採用事件適配器。
- 事件適配器-EventAdapter
- 用內部類實現事件處理
- 匿名類(Anonymous Class)
13、AWT組件庫
- 按鈕Button,會產生ActionEvent事件,需ActionListener 接口進行監聽和處理事件。ActionEvent的對象調用getActionCommand() 方法可以得到按鈕的標識名。
- 複選框Checkbox ,用ItemListener 來監聽ItemEvent事件,當複選框狀態改變時用getStateChange() 獲取當前狀態。
- 複選框組(CheckboxGroup)
- 下拉式菜單(Choice)用 ItemListener 接口來監聽
- Canvas組件監聽各種鼠標、鍵盤事件。
- 單行文本輸入區(TextField)
- 文本輸入區(TextArea)
- 列表(List)
- 框架(Frame)
- 對話框(Dialog)
- 文件對話框(Filedialog)
- 菜單(Menu)
- MenuBar 只能被添加到Frame對象中,作爲整個菜單樹的根基。
- 菜單項(MenuItem)是菜單樹中的“葉子節點”,需添加 ActionListener
14、設置組件的字體用setFont() 方法,也可以通過調用Toolkit對象的getFontList() 方法獲取完整的字體列表,還可以使用默認的Toolkit,如用Toolkit.getDefaultToolkit()的得到默認的字符集。
15、Jcomponent類的特殊功能分類:
- 邊框設置用setBorder()
- 雙緩衝區:關閉用setDoubleBuffered(false)方法。
- 提示信息:setToolTipText() 方法
- 鍵盤導航
- 可插入L&F:用UIManager.setLookAndFeel() 方法可設置需要的L&F
- 支持佈局
16、對JFrame添加組件的兩種方式
- 用getContentPane()方法獲得JFrame 的內容面板,再向其加入組件:frame.getConlentPane().add(childComponent)
- 建立一個JPanel(面板)或JdesktopPane之類的中間容器,把組件添加到容器中,再用setConentPane()方法把該容器置爲JFrame的內容面板:
Jpanel contentPane=new Jpanel();
//......把其他組件添加到Jpanel中
frame.setContentPane(contentPane);//把contentPane對象設置成爲frame的內容面板