1.GUI的介紹
早期,電腦向使用者提供的是單調、枯燥、純字元狀态的“指令行界面(CLI)”。就是到現在,我們還可以依稀看到它們的身影:在Windows中開個DOS視窗,就可看到曆史的足迹。後來,Apple公司率先在電腦的作業系統中實作了圖形化的使用者界面(Graphical User Interface,簡稱GUI),但由于Apple公司封閉的市場政策,自己完成電腦硬體、作業系統、應用軟體一條龍的産品,與其它PC不相容。這使得Apple公司錯過了一次一統全球PC的好機會。
後來,Microsoft公司推出了風靡全球的Windows作業系統,它憑借着優秀的圖形化使用者界面,一舉奠定了作業系統标準的地位。這也造就了世界首富---比爾.蓋茨和IT業的泰山北鬥微軟公司。
在這圖形使用者界面風行于世的今天,一個應用軟體沒有良好的GUI是無法讓使用者接受的。而Java語言也深知這一點的重要性,它提供了一套可以輕松建構GUI的工具。在本章和下一章中,我們将向你充分證明這一點。
java.awt 包 – 主要提供字型/布局管理器
javax.swing 包[商業開發常用] – 主要提供各種元件(視窗/按鈕/文本框)
java.awt.event 包 – 事件處理,背景功能的實作。
2.Swing元件
如圖所示:swing元件主要可分為三個部分,後面會詳細介紹
(1)頂層容器::常用有JFrame,JDialog
(2)中間容器:JPanel,JOptionPane,JScrollPane,JLayeredPane 等,主要以panel結尾。
(3)基本元件:JLabel,JButton,JTextField,JPasswordField,JRadioButton 等。

#
元件
描述
1
JFrame
一個普通的視窗(絕大多數 Swing 圖形界面程式使用 JFrame 作為頂層容器)
2
JDialog
對話框
JPanel (相當于div)
一般輕量級面闆容器元件(作為JFrame中間容器)
JScrollPane
帶滾動條的,可以水準和垂直滾動的面闆元件
3
JSplitPane
分隔面闆
4
JTabbedPane
頁籤面闆
5
JLayeredPane
層級面闆
JLabel
标簽
JButton
按鈕
JRadioButton
單選按鈕
JCheckBox
複選框
JToggleButton
開關按鈕
6
JTextField
文本框
7
JPasswordField
密碼框
8
JTextArea
文本區域
9
JComboBox
下拉清單框
10
JList
清單
11
JProgressBar
進度條
12
JSlider
滑塊
3.API介紹
JFrame frame = new JFrame("HelloWorldSwing");
// 建立及設定視窗
frame.setDefaultLookAndFeelDecorated(true);
// 確定一個漂亮的外觀風格
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
設定預設的關閉視窗
frame.pack();
// 顯示視窗
frame.setVisible(true);
//這個最好放在最後,不然會出現視圖看不到的情況
frame.setBounds(600, 300, 500, 400);
設定視窗的x,y位置,視窗大小x,y.
frame.add(panel)
添加panel面闆到容器
frmIpa.getContentPane().add(panel, BorderLayout.NORTH);
添加面闆到主視窗,布局在北面
frmIpa.getContentPane().add(scrollPane, BorderLayout.CENTER);
添加可滾動面闆到主視窗,布局在中間
Jpanel
JPanel panel = new JPanel();
建立面闆容器
panel.add(button);
添加按鈕到面闆
JOptionPane
JOptionPane.showMessageDialog(panel3, "沒有選中任何檔案", "提示", JOptionPane.WARNING_MESSAGE);
彈出提示框到panel容器
JScrollPane
JScrollPane scrollPane = new JScrollPane();
建立可滾動面闆
scrollPane.setViewportView(textArea);
設定面闆内容
JLabel label = new JLabel("Hello World");
添加标簽
Jbutton
JButton button = new JButton("選擇檔案");
建立按鈕
button.addActionListener(new ActionListener() {}
添加操作按鈕後的事件監聽器
JFileChooser
jfc.setFileSelectionMode(JFileChooser.FILES_AND_DIRECTORIES );
// 設定檔案對話框
jfc.showSaveDialog(frmIpa);
// 顯示打開的檔案對話框
jfc.getSelectedFile();
// 擷取選擇器選擇的檔案
JTextArea
JTextArea textArea = new JTextArea();
建立文本區域
textArea.setText(content);
設定内容
4.案例代碼
主視窗Jframe,
Jframe添加2個Jpanel面闆,
北面Jpanel添加JButton,JButton打開JFileChooser檔案對話框。
中間JScrollPane添加JTextArea文本區域,文本區域按各自業務邏輯來處理。
5.插件介紹WindowBuilder
總算騙大家看完文章,其實最友善的方法是用插件制作,當然大家先了解完代碼原理是最好的哈哈。eclispe安裝windowbuilder有兩種方式,一種是離線安裝,一種是線上安裝。
找到http://www.eclipse.org/windowbuilder/download.php
根據自己的eclipse版本選擇,因為我的是4.8版本了,是以隻能線上安裝。
(1)選擇Help - Eclipse MarketPlace
(2) 在商店中搜尋windowbuilder ,會出現WindowBuilder插件
(3)一路下一步,進行安裝,等待安裝結束重新開機eclipse即可。
(1)在Eclipe菜單中File - New -Other ,選中WindowBuilder - Swing Designer - JFrame。
(2)打開檔案,點選左下角的Design進入視圖模式,左邊對應代碼模式
左上是整個視圖結構,左下是單個結構的屬性,可以在這裡修改視窗的一些屬性,
中間是整個swing的界面按鈕,前面第二點介紹過的,這裡就不說了,
右邊就是視圖了,可以點選按鈕往視圖裡面添加,如下圖。