Upload
ifeoma-head
View
20
Download
0
Embed Size (px)
DESCRIPTION
JAVA 程式設計與資料結構. 第八章 GUI Introduction I. GUI. 使用 java.swing 的 package 來設計視窗介面,我們稱之為 Graphic User Interface(GUI) 。 在設計 GUI 的時候,需要 import javax.swing.*; 才可以編譯。. GUI 物件. Top-Level Containers : Applet, Dialog, Frame. - PowerPoint PPT Presentation
Citation preview
JAVA 程式設計與資料結構
第八章 GUI Introduction I
GUI
使用 java.swing 的 package 來設計視窗介面,我們稱之為 Graphic User Interface(GUI) 。
在設計 GUI 的時候,需要 import javax.swing.*; 才可以編譯。
GUI 物件 1. Top-Level Containers : Applet, Dialog, Frame.
2. General-Purpose Containers : Panel, Scroll Pane, Split pane, Tabbed pane, Tool bar.
3. Special-Purpose Containers : Internal frame, Layered pane, Root pane.
4. Basic Controls : Buttons, Combo box, List, Menu, Slider, Spinner, Text field.
5. Uneditable Information Displays : Label, Progress bar, Tool tip.
6. Interactive Displays of Highly Formatted Information : Color chooser, File chooser, Table, Text, Tree.
JFrame
JFrame 屬於 GUI 中的上層 Container(Top-Level Containers) ,所有的 GUI 物件都得有一個 Top-Level Container 來承裝,所以除了 Applet 跟Dialog 之外,我們只可以用 JFrame 來承裝其他 GUI 物件。
JFrame Example
設定關閉視窗即結束程式之
動作
JFrame
setTitle()setLocation()
setSize()
getContentPane()
JButtons
JButton 便是按鈕,是屬於 Basic Controls 中的一種。 Button 可用來激發事件。
需加入 Event Listener 方
能激發
配置在 JFrame 之中
JButtons Event Listener
使用 addActionListener()方法來將此物件加諸在 JButton上,如 ok.addActionListener(new Button_ActionListener());
JLabel
JLabel 就是一個可以顯示文字的地方,而在 JLabel 上的文字是無法編輯的。
JLabel 的建立方式與 JButton 類似,若是沒有使用 Layout Manager ,那麼可以使用繼承自 component 物件的方法 setBounds() 來安排其在 JFrame 中的位置。
使用 add() 方法將其加入在 contentPane中,如 contentPane.add(label);
使用 setText() 方法來給定 JLabel 之上的文字。
與 HTML合用
為了方便做修改, JButton 與 JLabel 上的文字都可以加上 HTML 的語法,來改變其型態。例如:
建立有圖形的 Label
使用 ImageIcon 物件來建立。先建立 ImageIcon 物件:
– ImageIcon icon = new ImageIcon("nextArrow.gif", "To Next Page");
接下來宣告 JLabel 物件:– label = new JLabel("Next Page", icon, JLabel.CENTER);
JTextField
Text Field 指的是一行空白處,而且 JTextField 允許使用者輸入一行的文字。也就是說,此處的文字是可編輯的。
根據 Constructor 來建構:– JTextField jtf = new JTextField(“在此輸入文字” , 500);
使用 getText() 方法自 Text Field 物件上取得文字。
取得輸入資訊之後便可以做進一步的設計或分析。
JTextArea
JTextArea 剛好可以算是 JTextField 的延伸, JTextField 只有一行,而 JTextArea則可以有許多行 (multiple lines) 。
其設定及建立方式與 JTextField 類似。
JScrollPane
JscrollPane 也是一個 Pane ,不過包含了橫向及縱向的 Scroll ,可讓我們看到超出 JTextArea 範圍外的文字。
Menus
Menus 便是在 title 之下一行加上可以選擇的選項。 Menu 跟 Button 一樣,都是可以激發事件的物件。
我們可在 JFrame 之中加入 JMenuBar物件,然後在 JMenuBar 之中加入 JMenu 物件,然後再在 JMenu 之下加入 JMenuItem 物件。
Menus
JMenuBarJMenuJMenuItem
Canvas
Canvas 物件是用來繪圖或是放置圖片的地方。
可設計 class 繼承自 Canvas 物件,重寫paint() 方法,來設定如何繪圖。可使用repaint() 方法來重畫。