




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、Swing組件快速入門GUIGUI的概念的概念到目前為止,我們編寫的都是基于控制臺的程序;GUI(Graphical User Interface)即圖形用戶界面,它能夠使應(yīng)用程序看上去更加友好;在企業(yè)中使用Java做GUI應(yīng)用,相對較少目標(biāo)目標(biāo)了解AWT、Swing手工編碼實現(xiàn)GUI程序掌握常用基本Swing組件的使用方法掌握常用布局管理器流式布局(FlowLayout)邊界布局(BorderLayout)網(wǎng)格布局(GridLayout)卡片布局管理器(CardLayout)網(wǎng)袋布局管理器(GridBagLayout)使用面板(JPanel)實現(xiàn)復(fù)雜布局AWT、Swing以及SWTAWT(A
2、bstract Windows Toolkit)是Java語言中最原始的GUI工具包,相關(guān)API位于java.awt包中。AWT是一個非常有限的GUI工具包,比如樹、表格等都不支持。原Sun公司希望Java 語言能夠成為一種“一次編寫,處處運行”的環(huán)境。意思是可以在一臺機(jī)器上開發(fā)和測試Java代碼(例如在 Windows平臺),然后不經(jīng)測試就可以在其他平臺(如Linux平臺)運行。對于大部分情況來說,Java 技術(shù)都可以成功實現(xiàn)這種特點,然而AWT卻無法實現(xiàn)。AWT運行時,每個組件都要依賴于當(dāng)前平臺的GUI對等體(peer)控件,因此,AWT GUI 的外觀和行為就會依賴當(dāng)前平臺。java.a
3、wtjava.awt包包java.awt包是Java內(nèi)置的包,屬于Java基礎(chǔ)類庫(JFC)的一部分,其中包括以下內(nèi)容:便于用戶輸入的一組豐富的界面組件;將組件放置在適當(dāng)位置的幾種布局管理器;事件處理模型;圖形和圖像工具等等。要使用到該包中的類,則必須顯式地聲明如下語句:import java.awt.*;SwingSwing簡介以及簡介以及javax.swingjavax.swing包包Swing組件是在AWT組件基礎(chǔ)上發(fā)展而來的輕量級組件,與AWT相比不但改進(jìn)了用戶界面,而且所需的系統(tǒng)資源更少;Swing是純Java組件,使得應(yīng)用程序在不同的平臺上運行時具有相同外觀和相同的行為。javax
4、.swing包中包含了一系列Swing組件,如果要使用該包中的類,則必須顯式地聲明如下語句:import javax.swing.*;Swing中的組件Swing中的大部分組件類位于javax.swing包中組件是JComponent的子類Swing中的組件非常豐富,支持很多功能強(qiáng)大的組件,如JTable、JTreeSwingSwing組件的類體系結(jié)構(gòu)組件的類體系結(jié)構(gòu)JFrameFrameJDialogDialogWindowJComponentContainerComponentObjectJOptionPaneJMenuBarJListJLabelJComboBoxJTextJPanelJ
5、ScrollBarAbstractButtonJMenuItemJButtonJToggleButtonJMenuJRadioButtonJCheckBoxJTextFieldJTextArea常用的基本常用的基本SwingSwing組件組件在Swing編程中,有一些經(jīng)常要使用到的組件,其中包括:JFrame(窗體,框架)JPanel(面板,容器)JButton(按鈕)JLabel(標(biāo)簽)JTextField(文本框)JTextArea(文本域)javax.swing.JFramejavax.swing.JFrameJFrame組件用于在Swing程序中創(chuàng)建窗體;JFrame類的構(gòu)造方法有4種
6、重載方式,以下是常用的幾種:構(gòu) 造 方 法說 明JFrame()創(chuàng)建新窗體,該窗體初始為不可見創(chuàng)建新窗體,該窗體初始為不可見JFrame(String title)創(chuàng)建新窗體,使用參數(shù)創(chuàng)建新窗體,使用參數(shù)title指定標(biāo)題,該窗體初始為不可見指定標(biāo)題,該窗體初始為不可見JFrameJFrame的常用方法的常用方法方方 法法 原原 型型說說 明明void setTitle(String title)設(shè)置窗體標(biāo)題,標(biāo)題內(nèi)容由參數(shù)設(shè)置窗體標(biāo)題,標(biāo)題內(nèi)容由參數(shù)title指定指定void setSize(int width, int height)設(shè)置窗體的大小,參數(shù)設(shè)置窗體的大小,參數(shù)width指定寬
7、度,參數(shù)指定寬度,參數(shù)height指指定高度,單位為像素定高度,單位為像素void setResizable(boolean resizable)設(shè)置窗體能否調(diào)整大小,由參數(shù)設(shè)置窗體能否調(diào)整大小,由參數(shù)resizable決定決定void setVisible(boolean b)設(shè)置窗體是否為可見,由參數(shù)設(shè)置窗體是否為可見,由參數(shù)b決定,決定,true為可見,為可見,false為不可見為不可見Container getContentPane()獲得當(dāng)前窗體的內(nèi)容面板獲得當(dāng)前窗體的內(nèi)容面板void setDefaultCloseOperation(int operation)設(shè)置窗體在關(guān)閉時默認(rèn)
8、執(zhí)行的操作設(shè)置窗體在關(guān)閉時默認(rèn)執(zhí)行的操作void dispose()釋放當(dāng)前窗體及其所有子組件所占用的資源,即卸載釋放當(dāng)前窗體及其所有子組件所占用的資源,即卸載窗體窗體void repaint()重新繪制當(dāng)前窗體重新繪制當(dāng)前窗體javax.swing.JPaneljavax.swing.JPanelJPanel提供面板組件,它是輕量級的容器組件;面板中可以添加其它組件,也可以設(shè)置布局,我們一般使用面板來實現(xiàn)布局嵌套;JPanel類的構(gòu)造方法有4種重載方式,以下是常用的幾種:構(gòu)構(gòu) 造造 方方 法法說說 明明JPanel()創(chuàng)建一個空面板創(chuàng)建一個空面板JPanel(LayoutManaer lay
9、out)創(chuàng)建帶有指定布局的面板創(chuàng)建帶有指定布局的面板JPanelJPanel的常用方法的常用方法JPanel(面板)的操作方式與Container(內(nèi)容面板)很相似,以下是一些常用方法:方方 法法 原原 型型說說 明明void setBackground(Color bg)設(shè)置面板的背景色,由參數(shù)設(shè)置面板的背景色,由參數(shù)bg指定顏色指定顏色void setLayout(LayoutManager mgr)設(shè)置面板的布局,參數(shù)是布局管理器設(shè)置面板的布局,參數(shù)是布局管理器Component add(Component comp)往面板中添加一個組件往面板中添加一個組件Component add(C
10、omponent comp, int index)將指定組件添加到面板中的指定位置上將指定組件添加到面板中的指定位置上void remove(Component comp)從面板中移除指定的組件從面板中移除指定的組件void removeAll()從面板中移除所有組件從面板中移除所有組件void repaint()重新繪制當(dāng)前面板重新繪制當(dāng)前面板創(chuàng)建窗體創(chuàng)建窗體對于類似于窗體這樣的容器組件,我們一般自定義一個類,繼承于JFrame類,然后將窗體中的子組件作為類中成員進(jìn)行聲明,以方便操作,如:public class MyFrame extends JFrame容器組件是指可以容納其它組件的組件
11、。創(chuàng)建窗體示例創(chuàng)建窗體示例import javax.swing.*; /導(dǎo)入必要的包/*自定義窗體類,繼承于JFrame類*/public class MyFrame extends JFrame /*構(gòu)造方法*/ public MyFrame() /super(這是我的第一個窗體); /利用父類的構(gòu)造方法設(shè)置標(biāo)題 this.setTitle(這是我的第一個窗體); /設(shè)置窗體的標(biāo)題 this.setSize(300, 200); /設(shè)置窗體的大小 this.setVisible(true); /設(shè)置窗體為可見,即顯示窗體 /*main方法,程序入口*/ public static void
12、main(String args) MyFrame mf = new MyFrame(); /創(chuàng)建窗體實例 窗體的內(nèi)容面板窗體的內(nèi)容面板一個完整的窗體是由外部框架和內(nèi)容面板兩部分組成的;外部框架是指由標(biāo)題欄和四邊所組成空心邊框,它主要用來控制窗體的大小和外觀;我們實際操作的是內(nèi)容面板,如設(shè)置窗體的背景色,設(shè)置窗體的布局,往窗體中添加其它組件等;使用getContentPane方法獲得當(dāng)前窗體的內(nèi)容面板,該方法的返回值是Container(容器)類對象,如:Container contentPane = getContentPane();Container類在java.awt包中。java.aw
13、t.Containerjava.awt.ContainerContainer類通常用于操作JFrame的內(nèi)容面板,其常用的方法有:方方 法法 原原 型型說說 明明void setBackground(Color bg)設(shè)置容器的背景色,由參數(shù)設(shè)置容器的背景色,由參數(shù)bg指定顏色指定顏色void setLayout(LayoutManager mgr)設(shè)置容器的布局,參數(shù)是布局管理器設(shè)置容器的布局,參數(shù)是布局管理器Component add(Component comp)往容器中添加一個組件往容器中添加一個組件Component add(Component comp, int index)將指定
14、組件添加到容器中的指定位置上將指定組件添加到容器中的指定位置上void remove(Component comp)從容器中移除指定的組件從容器中移除指定的組件void removeAll()從容器中移除所有組件從容器中移除所有組件void repaint()重新繪制當(dāng)前容器重新繪制當(dāng)前容器內(nèi)容面板示例內(nèi)容面板示例import java.awt.*; /Container類和Color類在此包中import javax.swing.*;public class ContentPaneDemo extends JFrame public ContentPaneDemo() super(內(nèi)容面板示
15、例); /獲得當(dāng)前窗體的內(nèi)容面板 Container contentPane = this.getContentPane(); /設(shè)置內(nèi)容面板的背景色為紅色 contentPane.setBackground(Color.RED); /設(shè)置窗體關(guān)閉時即退出程序 setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); setSize(300, 200); setResizable(false); /設(shè)置窗體不可調(diào)整大小 setVisible(true); public static void main(String args) ContentPaneDem
16、o cpd = new ContentPaneDemo(); javax.swing.JButtonjavax.swing.JButton在Swing程序中,按鈕可能是使用量最大的組件之一,JButton則是用來創(chuàng)建按鈕的;JButton類的構(gòu)造方法有5種重載方式,以下是常用的幾種:構(gòu)構(gòu) 造造 方方 法法說說 明明JButton()創(chuàng)建一個空按鈕創(chuàng)建一個空按鈕JButton(String text)創(chuàng)建一個帶文本的按鈕創(chuàng)建一個帶文本的按鈕JButton(Icon icon)創(chuàng)建一個帶圖標(biāo)的按鈕創(chuàng)建一個帶圖標(biāo)的按鈕JButton(String text, Icon icon)創(chuàng)建一個帶文本和圖標(biāo)
17、的按鈕創(chuàng)建一個帶文本和圖標(biāo)的按鈕JButtonJButton的常用方法的常用方法方方 法法 原原 型型說說 明明void setText(String text)設(shè)置按鈕上的文本設(shè)置按鈕上的文本String getText()獲得按鈕上的文本獲得按鈕上的文本void setBackground(Color bg)設(shè)置按鈕的背景色設(shè)置按鈕的背景色Color getBackground()獲得按鈕的背景色獲得按鈕的背景色void setEnabled(boolean b)設(shè)置啟用(或禁用)按鈕,由參數(shù)設(shè)置啟用(或禁用)按鈕,由參數(shù)b決定決定void setVisible(boolean b)設(shè)置按
18、鈕是否為可見,由參數(shù)設(shè)置按鈕是否為可見,由參數(shù)b決定決定void setToolTipText(String text)設(shè)置按鈕的懸停提示信息設(shè)置按鈕的懸停提示信息void setMnemonic(int mnemonic)設(shè)置按鈕的快捷鍵設(shè)置按鈕的快捷鍵javax.swing.JLabeljavax.swing.JLabelJLabel是最簡單的Swing組件之一,用于在窗體上顯示標(biāo)簽, JLabel既可以顯示文本,也可以顯示圖像;JLabel類的構(gòu)造方法有6種重載方式:構(gòu)構(gòu) 造造 方方 法法說說 明明JLabel()創(chuàng)建一個空的標(biāo)簽創(chuàng)建一個空的標(biāo)簽JLabel(String text)創(chuàng)建
19、一個帶文本的標(biāo)簽創(chuàng)建一個帶文本的標(biāo)簽JLabel(String text, int ha)創(chuàng)建一個帶文本的標(biāo)簽,并指定其對齊方式,可以是創(chuàng)建一個帶文本的標(biāo)簽,并指定其對齊方式,可以是JLabel.LEFT、JLabel.CENTER和和JLabel.RIGHTJLabel(Icon image)創(chuàng)建一個帶圖像的標(biāo)簽創(chuàng)建一個帶圖像的標(biāo)簽JLabel(Icon image, int ha)創(chuàng)建一個帶圖像的標(biāo)簽,并指定其對齊方式創(chuàng)建一個帶圖像的標(biāo)簽,并指定其對齊方式JLabel(String text, Icon image, int ha)創(chuàng)建一個帶文本和圖像的標(biāo)簽,并指定其對齊方式創(chuàng)建一個帶文本
20、和圖像的標(biāo)簽,并指定其對齊方式JLabelJLabel的常用方法的常用方法方方 法法 原原 型型說說 明明void setText(String text)設(shè)置標(biāo)簽上的文本設(shè)置標(biāo)簽上的文本String getText()獲得標(biāo)簽上的文本獲得標(biāo)簽上的文本void setIcon(Icon icon)設(shè)置標(biāo)簽中的圖像設(shè)置標(biāo)簽中的圖像Icon getIcon()獲得標(biāo)簽中的圖像獲得標(biāo)簽中的圖像void setHorizontalAlignment(int alignment)設(shè)置標(biāo)簽中文本的對齊方式設(shè)置標(biāo)簽中文本的對齊方式void setVisible(boolean b)設(shè)置標(biāo)簽是否為可見設(shè)置標(biāo)簽
21、是否為可見javax.swing.JTextFieldjavax.swing.JTextFieldJTextField是文本框組件,主要用來接受用戶的輸入;JTextField類的構(gòu)造方法有5種重載方式,以下是常用的幾種:構(gòu)構(gòu) 造造 方方 法法說說 明明JTextField()創(chuàng)建一個空的文本框創(chuàng)建一個空的文本框JTextField(String text)創(chuàng)建一個帶文本的文本框創(chuàng)建一個帶文本的文本框JTextField(int columns)創(chuàng)建一個指定列數(shù)的空文本框創(chuàng)建一個指定列數(shù)的空文本框JTextField(String text, int columns)創(chuàng)建一個帶文本,并指定列數(shù)
22、的文本框創(chuàng)建一個帶文本,并指定列數(shù)的文本框JTextFieldJTextField的常用方法的常用方法方方 法法 原原 型型說說 明明void setText(String text)設(shè)置文本框中的文本設(shè)置文本框中的文本String getText()獲得文本框中的文本獲得文本框中的文本void setHorizontalAlignment(int alignment)設(shè)置文本框中文本的對齊方式,可以是設(shè)置文本框中文本的對齊方式,可以是JTextField.LEFT、JTextField.CENTER和和JTextField.RIGHTvoid setEditable(boolean b)設(shè)置
23、文本框是否可以編輯,由參數(shù)設(shè)置文本框是否可以編輯,由參數(shù)b決定決定void setEnabled(boolean enabled)設(shè)置啟用(或禁用)文本框設(shè)置啟用(或禁用)文本框void setVisible(boolean b)設(shè)置文本框是否為可見設(shè)置文本框是否為可見javax.swing.JTextAreajavax.swing.JTextArea當(dāng)用戶有大量文本需要輸入的時候,就可以使用到文本域組件,JTextArea的構(gòu)造方法共有6種重載,以下是常用的幾種:構(gòu)構(gòu) 造造 方方 法法說說 明明JTextAreaJTextArea()()創(chuàng)建一個空的文本域創(chuàng)建一個空的文本域JTextArea
24、JTextArea(String text)(String text)用指定文本初始化文本域用指定文本初始化文本域JTextAreaJTextArea( (intint rows, rows, intint columns) columns)創(chuàng)建一個指定行數(shù)和列數(shù)的空文本域創(chuàng)建一個指定行數(shù)和列數(shù)的空文本域JTextArea(String text,JTextArea(String text,int rows, int columns)int rows, int columns)創(chuàng)建一個帶文本,并指行數(shù)和列數(shù)的文本域創(chuàng)建一個帶文本,并指行數(shù)和列數(shù)的文本域JTextAreaJTextArea的常用
25、方法的常用方法方方 法法 原原 型型說說 明明void void setTextsetText(String text)(String text)設(shè)置文本域中的文本設(shè)置文本域中的文本String String getTextgetText()()獲得文本域中的文本獲得文本域中的文本void void setFontsetFont(Font (Font fontfont) )設(shè)置文本域中文本的字體設(shè)置文本域中文本的字體void void setLineWrapsetLineWrap( (booleanboolean wrap) wrap)設(shè)置文本域中文本的自動換行策略設(shè)置文本域中文本的自動換行策
26、略void setTabSize(int size)void setTabSize(int size)設(shè)置制表符設(shè)置制表符tt所占的字符寬度,默認(rèn)為所占的字符寬度,默認(rèn)為8 8個字符寬度個字符寬度布局管理器布局管理器用戶界面上的組件可以按照不同的方式進(jìn)行排列,例如:可以依序水平排列,或者按網(wǎng)格方式進(jìn)行排列;每種方案都是指組件的一種布局,要管理這些布局,就需要使用布局管理器;布局管理器是一組實現(xiàn)了java.awt.LayoutManager接口的類,由這些類自動定位組件;布局管理器類在java.awt包中。幾種常用布局幾種常用布局流式布局java.awt.FlowLayout邊界布局java.a
27、wt.BorderLayout網(wǎng)格布局java.awt.GridLayout幾種常用布局幾種常用布局2 2卡片布局Java.awt.CardLayout網(wǎng)袋布局管理器Java.awt.GridBagLayout流式布局示例流式布局示例import java.awt.*; /布局管理器在此包中import javax.swing.*;public class FlowLayoutDemo extends JFrame private JTextField txt1, txt2, txt3, txt4; /聲明4個文本框 public FlowLayoutDemo() super(流式布局示例);
28、 /使用父類的構(gòu)造方法設(shè)置窗體標(biāo)題 txt1 = new JTextField(文本框1); /分別實例化4個文本框 txt2 = new JTextField(文本框2); txt3 = new JTextField(文本框3); txt4 = new JTextField(文本框4); Container me = getContentPane(); /獲取當(dāng)前窗體的內(nèi)容面板 me.setLayout(new FlowLayout(); /設(shè)置內(nèi)容面板的布局為流式布局 me.add(txt1); /分別將4個文本框添加到內(nèi)容面板中 me.add(txt2); me.add(txt3); m
29、e.add(txt4); setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); setSize(300, 200); setVisible(true); public static void main(String args) new FlowLayoutDemo(); /實例化窗體,匿名對象 邊界布局示例邊界布局示例public class BorderLayoutDemo extends JFrame private JButton btn1, btn2, btn3, btn4, btn5; /聲明5個按鈕 public BorderLayoutD
30、emo() btn1 = new JButton(北邊按鈕); /分別實例化5個按鈕 btn2 = new JButton(南邊按鈕); btn3 = new JButton(西邊按鈕); btn4 = new JButton(東邊按鈕); btn5 = new JButton(中間按鈕); Container me = getContentPane(); me.setLayout(new BorderLayout(); /設(shè)置內(nèi)容面板的布局為邊界布局 me.add(btn1, BorderLayout.NORTH); /分別將按鈕添加到內(nèi)容面板的各個方位 me.add(btn2, BorderLayout.SOUTH); me.add(btn3, BorderLayout.WES
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 北海市初中數(shù)學(xué)試卷
- 豆類項目風(fēng)險識別與評估綜合報告
- 邊坡錨桿錨索腰梁施工方案
- 浙江油田油管清洗施工方案
- 房屋地面鋪裝工程施工方案
- 三水裝配式檢查井施工方案
- “油茶+N”混交造林模式的技術(shù)創(chuàng)新與應(yīng)用實踐的效益詳述
- 智能制造與供應(yīng)鏈管理的策略及實施路徑
- 數(shù)字化改造的必要性與挑戰(zhàn)
- 變電站巡檢的重要性
- 2024年江蘇護(hù)理職業(yè)學(xué)院高職單招語文歷年參考題庫含答案解析
- DB61T 5097-2024 強(qiáng)夯法處理濕陷性黃土地基技術(shù)規(guī)程
- 南瓜小房子故事課件
- 2024年蘇州經(jīng)貿(mào)職業(yè)技術(shù)學(xué)院高職單招(英語/數(shù)學(xué)/語文)筆試歷年參考題庫含答案解析
- 風(fēng)電場道路及平臺施工組織方案
- 風(fēng)險分級管控74411ppt課件(PPT 146頁)
- 三八女神節(jié)活動策劃PPT課件
- 畢業(yè)設(shè)計(論文)3000t自由鍛液壓機(jī)本體設(shè)計
- 風(fēng)力發(fā)電機(jī)組PLC系統(tǒng)
- Q∕GDW 12131-2021 干擾源用戶接入電網(wǎng)電能質(zhì)量評估技術(shù)規(guī)范
- T∕CAEPI 32-2021 全尾砂膏體充填關(guān)鍵設(shè)備技術(shù)要求
評論
0/150
提交評論