你將學到:數組
文本框和按鈕同樣,都是很是經常使用的控件,文本框提供了一個輸 入信息的控件。框架
文本框是經過JTextField類來建立的,在建立的文本框中當文本超出文本框規定長度時,將自動滾動文本顯示。文本框是經過JTextField類的構造器建立的,包括5種構造器,如表所示。less
構造器 | 說明 |
---|---|
public JTextFiled() | 建立普通的文本框 |
public JTextFiled(String text) | 建立右默認值的文本框 |
public JTextFiled(int columns) | 建立指定長度的文本框 |
public JTextFiled(String text,int columns) | 建立指定長度和指定文本內容的文本框 |
public JTextFiled(Documents doc,String text,int columens) | 建立具備默認值,長度和文本內容的文本框 |
文本框也是會觸發事件的,它和按鈕同樣,都是觸發ActionEvent事件。按鈕是被單擊時觸發事件,而文本框是當用戶按下回車鍵時觸發事件。ide
當但願進行多行輸入時,文本框就不能知足其要求,這時候就須要建立多行文本框。多行文本框也是文本框的一種特殊形式,多行文本框是經過JTextArea類實現的。JTextArea類中提供了6種構 造器來建立多行文本框,構造器如表所示。佈局
構造器|說明 ------|---- public TextArea()|建立沒有內容的多行文本框,默認的行數和列數爲0 public TextArea(String text)|建立指定內容的文本框,默認的行數和列數爲0 public TextArea(int row,int columns)|建立一個指定行和列的多行文本框 public TextArea(String text,int row,int columns)|建立指定行,列和文本內容的多行文本框 public TextArea(Documents doc)|建立具備文檔模型的多行文本框。默認的行和列爲0 public TextArea(Documents doc,String text,int row,int columns)|建立指定文本模型、文本內容、列和行的多行文本框
密碼框是文本框的改進的控件,是一種專門用於輸入密碼的文本 框。在文本框中輸入信息後,將不直接顯示輸入的信息,而是使 用特定的特殊字符來進行顯示。密碼框是經過JPasswordField類 來建立的,由於密碼框和文本框的關係,因此JPasswordField類的構造器是和JTextField類的構造器相同的。學習
複選框和單選按鈕具備不少類似的地方,它們在實際開發中也經 常要使用到。例如須要用戶來選擇興趣愛好時,通常都不多是隻 有一個愛好的,這裏就能夠建立複選框來實現其功能,來讓用戶 進行多項選擇操做。可是例如性別等信息,是不可能存在多個選 擇的,它只能在有限的幾個選項中選擇其中一個,這裏就可使 用單選按鈕。ui
經過JRadioButton與ButtonGroup的配合使用,能夠很方便地實現 單項選擇。若須要使用多項選擇,則應該使用複選框——JCheckBox類。與JRadioButton的不一樣是,JCheckBox不須要編組 使用,各個選項之間沒有邏輯約束關係。 該類提供了8個構造器,表中列出了其中7個比較經常使用的。設計
構造器 | 說明 |
---|---|
public JCheckBox() | 建立沒有任何內容的複選框 |
public JCheckBox(Icon icon) | 建立指定圖標的複選框 |
public JCkeckBox(Icon icon,boolean selected) | 建立指定圖標以及是否被選中的複選框(若布爾值爲true則表示被選中) |
public JCkeckBox(String text) | 指定複選框的內容 |
public JCheckBox(String text,boolean selected) | 建立指定文本以及是否被選中的複選框 |
public JCheckBox(String text,Icon icon) | 建立指定文本和圖標的複選框 |
public JCkeckBox(String text,Icon icon,boolean selected) | 建立指定文字、圖標以及肯定是否被選中的複選框 |
實例代碼: |
public class JCheckBoxTest { private static void constructGUI() { JFrame.setDefaultLookAndFeelDecorated(true); JFrame frame = new JFrame("JCheckBox Test"); frame.setLayout(new FlowLayout()); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); //JCheckBox ac = new JCheckBox("A/C",true);使用複選框的兩個參數的構造器來簡化代碼 JCheckBox ac = new JCheckBox("A/C"); ac.setSelected(true); JCheckBox cdPlayer = new JCheckBox("CD Player"); JCheckBox cruiseControl = new JCheckBox("Cruise Control"); JCheckBox keylessEntry = new JCheckBox("Keyless Entry"); JCheckBox antiTheft = new JCheckBox("Anti-Theft Alarm"); JCheckBox centralLock = new JCheckBox("Central Lock"); frame.add(new JLabel("Car Features")); frame.add(ac); frame.add(cdPlayer); frame.add(cruiseControl); frame.add(keylessEntry); frame.add(antiTheft); frame.add(centralLock); frame.pack();//pack()方法能夠將JFrame內容面板中的控件調整到適合的尺寸和佈局 frame.setVisible(true); } public static void main(String args[]) { SwingUtilities.invokeLater(new Runnable() { public void run() { constructGUI(); } }); } }
若是咱們不想調用pack方法的話,咱們能夠調用JFrame的setSize和SetBounds方法。須要注意的是咱們須要在setVisible方法前調用這兩個方法。code
效果圖:對象
單選按鈕是一種只能在一組選項中選擇其中一個選項的控件。單選按鈕是經過使用JRadioButton類來建立的,在JRadioButton類 中具備7種構造器形式,構造器如表所示。
構造器|說明 -----|---- public JRadioButton()|建立沒有文字、圖標以及沒有被選中的按鈕 public JRadioButton(Icon icon)|建立一個具備圖標的按鈕 public JRadioButton(Icon icon,boolean selected)|建立指定圖標,以及肯定是否被選中的按鈕 public JRadioButton(String text)|建立一個指定按鈕文字的按鈕 public JRadioButton(String text,boolean selected)|建立指定文字以及肯定選中與否的按鈕 public JRadioButton(String text,Icon icon)|建立有文字和圖標的按鈕 public JRadioButton(String text,Icon icon,boolean selected)|建立指定文本、按鈕以及是否被選中的按鈕
實例代碼:
//建立三個單選按鈕 JRadioButton button1 = new JRadioButton("Red"); JRadioButton button2 = new JRadioButton("Green"); JRadioButton button3 = new JRadioButton("Blue"); // 建立按鈕組 ButtonGroup colorButtonGroup = new ButtonGroup(); colorButtonGroup.add(button1); colorButtonGroup.add(button2); colorButtonGroup.add(button3); button1.setSelected(true); //設置默認狀況下按鈕1被選中 frame.add(new JLabel("Color:")); frame.add(button1); frame.add(button2); frame.add(button3); frame.pack(); frame.setVisible(true);
注意:當咱們建立多個單選按鈕時,若是咱們不將按鈕添加到按鈕組中,那麼多個按鈕就會出現同時被選中的狀況。
選項卡也是開發GUI界面經常使用的控件之一,經過使用選項卡能夠在 同一個窗體中提供不少不一樣的界面,能夠經過選項卡提供的標籤 在界面間方便地進行切換。選項卡是經過JTabbedPane類建立的。
選項卡能夠產生多個標籤框架,每個標籤框架窗口自成一個系統,即 包含多個頁面,每一個頁面與一個標籤對應。當選擇某一個標籤時,標籤 框架窗口會自動顯示出此標籤框架的內容,並觸發一個ChangeEvent事件 ,這個事件由ChangeListener監聽器監聽並處理。
選項卡具備如下構造方法及經常使用方法:
分割窗格(JSplitPane)也是Swing中經常使用的控件之一,其可以將單個空間分割成兩個部分,並在兩個部分中顯示不一樣的內容。
JSplitPane控件容許在單個空間中放置兩個控件,開發人員能夠 自由決定按水平方向或垂直方向劃分空間,還能夠在程序運行期 間使用鼠標自由調整空間的分割比例。經過JSplitPane控件的嵌 套使用,能夠將空間分割成更多的部分。JSplitPane類提供了5個構造器,如表所示。
JSlider類是Swing包中提供的用於實現滑塊的控件,經過JSlider控件可讓用戶在限定的範圍內方便地選擇須要的值。JSlider類 提供的滑塊能夠是水平方向的,也能夠是垂直方向的,而且能夠 根據須要設置成爲不一樣的外觀風格。
提示:滑塊組件是由能夠拖動的滑塊和一個範圍組件組成的;用 戶能夠經過拖動滑塊在一個區間範圍裏進行選擇。
ProgressBar是Swing中提供的用來實現進度條的控件,使用其能夠很是方便地完 成進度條的開發。在應用中恰當使用進度條能夠即時通告用戶系統的一些信息,避免用戶因不知道系統運行狀況而焦急地等待,從而使界面更加友好。 JProgressBar類提供了5個構造器,其中有4個是比較經常使用的,下表列出了這4個經常使用的構造器。
列表是圖形用戶界面程序中常 用到的組件,列表容許用戶從列表項中選擇一個或多個選項,默認狀況下,列表支持單選;選擇狀態由分隔符來區別。而且能夠經過JList中提供的setSelectionMode方法使得列表支持多選。
JList的經常使用構造方法以下所示:
注意:JList類沒有提供滾動功能,可是能夠經過將其放置在 JScrollPane中來實現滾動操做。
下拉列表及組合框,下拉列表與列表不一樣的是,下拉列表只支持 單個選項,只容許用戶選擇一個選項。優勢是能節省空間,使界 面更緊湊。而且只有用戶單擊下拉列表時,列表選項纔會顯示。下拉列表框是經過JComboBox類來建立的,JComboBox控件實際上組合了一個文本框與一個下拉列表。
注意:在默認的狀況下,下拉列表是不能夠被用戶編輯的,可是可使用JComboBox提供的方法setEditable方法使其能夠被編輯 。
菜單(JMenu)是標題欄下面的一行文字部分。菜單是應用程序中最經常使用的組件。菜單的組織方式爲:一個菜單條JMenuBar包含多個菜單項(JMenuItem)。JMenuItem有兩個子類,分別爲JRadioButtonMenuItem及JCheckBoxMenuItem用於表示單選菜單項和複選菜單項。當用戶選擇某個菜單項後,就會觸發一個ActionEvent事件,由ActionListener監聽器處理。
菜單項有兩種狀態:啓用狀態和禁用狀態,菜單項的狀態可使 用setEnabled()方法設置。建立完整的菜單通常須要如下幾步:
實例代碼:
JMenuBar menuBar = new JMenuBar();//建立菜單欄 JMenu fileMenu = new JMenu("File"); JMenu editMenu = new JMenu("Edit"); JMenu helpMenu = new JMenu("Help"); //將菜單添加到菜單欄 menuBar.add(fileMenu); menuBar.add(editMenu); menuBar.add(helpMenu); // 爲每個菜單建立子菜單 JMenuItem fileNewMI = new JMenuItem("New"); JMenuItem fileOpenMI = new JMenuItem("Open"); JMenuItem fileSaveMI = new JMenuItem("Save"); JMenuItem fileExitMI = new JMenuItem("Exit"); // 將子菜單添加到菜單 fileMenu.add(fileNewMI); //爲菜單添加事件監聽器 fileNewMI.addActionListener(actionListener); fileMenu.add(fileOpenMI); fileOpenMI.addActionListener(actionListener); fileMenu.add(fileSaveMI); fileSaveMI.addActionListener(actionListener); fileMenu.addSeparator(); fileMenu.add(fileExitMI); fileExitMI.addActionListener(actionListener); JMenuItem editCopyMI = new JMenuItem("Copy"); JMenuItem editPasteMI = new JMenuItem("Paste"); editMenu.add(editCopyMI); editMenu.add(editPasteMI); JMenuItem helpAboutMI = new JMenuItem("About"); helpMenu.add(helpAboutMI);
運行效果:
彈出式菜單有時也稱爲右鍵菜單,其通常在用戶按下鼠標右鍵時在鼠標位置彈出,可以給用戶的操做提供更大的方便。從某種程度上來講,右鍵菜單設計的好壞直接影響應用程序的易用性。彈出式菜單是經過JPopupMenu類來建立,經過該類提供的show方法將菜單顯示在指定的位置上。
注意:JPopupMenu類不是繼承JMenu類的而是從JComponent類繼承過來。彈出式菜單的建立和菜單的建立基本相同,也須要新建一個彈出式菜單後再加入菜單項。