Swing 是一個為Java設(shè)計(jì)的GUI工具包。
Swing是JAVA基礎(chǔ)類的一部分。
Swing包括了圖形用戶界面(GUI)器件如:文本框,按鈕,分隔窗格和表。
Swing提供許多比AWT更好的屏幕顯示元素。它們用純Java寫成,所以同Java本身一樣可以跨平臺運(yùn)行,這一點(diǎn)不像AWT。它們是JFC的一部分。它們支持可更換的面板和主題(各種操作系統(tǒng)默認(rèn)的特有主題),然而不是真的使用原生平臺提供的設(shè)備,而是僅僅在表面上模仿它們。這意味著你可以在任意平臺上使用JAVA支持的任意面板。輕量級組件的缺點(diǎn)則是執(zhí)行速度較慢,優(yōu)點(diǎn)就是可以在所有平臺上采用統(tǒng)一的行為。
1.框架(JFrame)
框架SwingGUI應(yīng)用程序的主窗口,窗口包括邊界、標(biāo)題、關(guān)閉按鈕等。
JFrame類是java.awt包中Frame類的子類,其子類創(chuàng)建的對象是窗體,對象(窗體)是重量容器。不能把組件直接添加到Swing窗體中,其含有內(nèi)容面板容器,應(yīng)該把組件添加到內(nèi)容面板中;不能為Swing窗體設(shè)置布局,而應(yīng)當(dāng)Swing窗體的內(nèi)容面板設(shè)置布局。
Swing窗體通過getContentPane()方法獲得JFrame的內(nèi)容面板,再對其加入組件;
JFrame frame = new JFrame();
Container ct = frame.getContentPane(); //獲取內(nèi)容面板容器
Ct.add(childComponent);? //降內(nèi)容面板容器加入組件
框架(JFrame)常用的方法和事件:
frame.setVisibel(true):顯示框架對象代表的框架窗口。
frame.setSize(200,100)或frame.pack():設(shè)置框架的初始顯示大小。
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE):當(dāng)用戶單機(jī)框架的關(guān)閉按鈕則退出程序,或者添加WindowListener監(jiān)聽器實(shí)現(xiàn)關(guān)閉按鈕退出程序。
2.面板(JPanel)
JPanel組件定義面板實(shí)際上是一種容器組件,用來容納各種其他輕量級組件。此外,用戶還可以用這種面板容器繪制圖形。
JPanel的構(gòu)造方法如下:
JPanel():創(chuàng)建具有雙緩沖和流布局(FlowLayout)的面板。
JPanel(LayoutManager layout):創(chuàng)建具有制定布局管理器的面板。
JPanel的 常用方法:
void add(Component):添加組件。
void add(Component,int):添加組件至索引指定位置。
void add(Component,Object):按照指定布局限制添加組件。
void add(Component,Object,int):按照指定布局管理器限制添加組件到指定位置。
void remove(Component):移除組件。
void remove(int):移除指定位置的組件。
void removeAll():移除所有組件。
void paintComponent(Graphics):繪制組件。
void repaint():重新繪制。
void setPreferredSize(Dimension):設(shè)置組件尺寸。
Dimension getPreferredSize():獲取最佳尺寸。
3.文本框(JTextField和JPasswordField)
JTextField組件用于創(chuàng)建文本框。文本框是用來接收用戶的單行文本信息輸入的區(qū)域。通常文本框用于接收用戶信息或其他文本信息的輸入。當(dāng)用戶輸入文本信息后,如果為JTextField對象添加了事件處理,按回車鍵后就會觸發(fā)一定的操作。
JPasswordField是JTextField的子類,是一種特殊的文本框,也是用來接收單行文本信息輸入的區(qū)域,但是會用回顯字符串代替輸入的文本信息。因此,JPasswordField組件也稱為密碼文本框。JPasswordField默認(rèn)的是回顯字符是”*”,用戶可以自行設(shè)置回顯字符。
JTextField的常見構(gòu)造方法有如下幾種:
JTextField():創(chuàng)建一個空文本框。
JTextField(String text):創(chuàng)建一個具有出事文本信息text的文本框。
JTextField(String text,int columns):創(chuàng)建一個具有出事文本信息text以及制定列數(shù)的文本框。
JTextField的常用方法:
void setText(String):設(shè)置顯示內(nèi)容。
String getText():獲取顯示內(nèi)容。
JPasswordField的構(gòu)造方法有如下幾種:
JPasswordField():創(chuàng)建一個空的密碼文本框。
JPasswordField(String text):創(chuàng)建一個指定初始文本信息的密碼文本框。
JPasswordField(String text,int columns):創(chuàng)建一個指定文本和列數(shù)的密碼文本框。
JPasswordField(int columns):創(chuàng)建一個指定列數(shù)的密碼文本框。
JPasswordField是JTextField的子類,因此JPasswordField也具有與JTextField類似的名稱和功能的方法,此外,它還具有與JTextField類似的名稱和功能的方法,此外,它還具有自己的獨(dú)特方法:
boolean echoCharIsSet():獲取設(shè)置回顯字符的狀態(tài)。
void setEchoChar(char):設(shè)置回顯字符。
void getEchoChar():獲取回顯字符。
char[] getPassword():獲取組件的文本。
4.按鈕(Jbutton)
Swing中的按鈕是Jbutton,它是javax.swing.AbstracButton類的子類,swing中的按鈕可以顯示圖像,并且可以將按鈕設(shè)置為窗口的默認(rèn)圖標(biāo),而且還可以將多個圖像指定給一個按鈕。
在JButton中有如下幾個比較常用的構(gòu)造方法。
JButton(Icon icon): 按鈕上顯示圖標(biāo)。
JButton(String text): 按鈕上顯示字符。
JButton(String text,Icon icon): 按鈕上既顯示圖標(biāo)又先施字符。
JButton類的方法:
setText(String text): 設(shè)置按鈕的標(biāo)簽文本。
setIcon(Icon defaultIcon): 設(shè)置按鈕在默認(rèn)狀態(tài)下顯示的圖片。
setRolloverIcon(Icon rolloverIcon): 設(shè)置當(dāng)光標(biāo)移動到按鈕上方時(shí)顯示的圖片。
setPressedIcon(Icon pressedIcon): 設(shè)置當(dāng)按鈕被按下時(shí)顯示的圖片。
setContentAreaFilled(boolean b): 設(shè)置按鈕的背景為同名,當(dāng)設(shè)為fase時(shí)表示不繪制,默認(rèn)為繪制。
setBorderPainted(boolean b): 設(shè)置為不繪制按鈕的邊框,當(dāng)設(shè)為false時(shí)表示不繪制,默認(rèn)為繪制。
按鈕組件是GUI中最常用的一種組件。按鈕組件可以捕捉到用戶的單擊事件,同時(shí)利用按鈕事件處理機(jī)制響應(yīng)用戶的請求。JButton類是Swing提供的按鈕組件,在單擊JButton類對象創(chuàng)建的按鈕時(shí),會產(chǎn)生一個ActionEvent事件。
CLASSPATH
.;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tools.jar
%JAVA_HOME%\bin;%JAVA_HOME%\jre\bin;