swing 組價和容器——java swing 組件和技術(中)

執拗地去寫完本身剩下的java swing總結,相信時間會見證個人成長。 java

1、 swing組件和容器概覽

1.頂層容器(JFrame,JDialog,JApplet)

    JFrame—框架,主要用來設計應用程序的圖像界面 編程

    JDialog—對話框,一般用來設計具備依賴關係的窗口 數組

    JApplet—小應用程序,主要用來設計嵌入網頁中運行的java程序 框架

2.通常容器

    普通容器(JPanel、JScrollPane、JToolbar、JSplitPane、JTabbedPane) ide

        JPanel—面板,一般只有背景顏色的普通容器 函數

        JScrollPane—滾動窗格,具備滾動條 工具

        JToolbar—工具條,一般將多個組件排成一排或者一列 佈局

        JSplitPane—分裂窗格,用來裝兩個組件的容器 spa

        JTabbedPane—選項卡窗格,容許多個組件共享相同的界面空間 .net

    專用容器(JLayeredPane、JRootPane 、JInternalFrame)

        JLayeredPane—分層窗格,給窗格增長了深度的概念

        JRootPane—根窗格,通常是自動建立的容器

        JInternalFrame—內部窗格,能夠在一個窗口內顯示若干個相似於框架的窗口

3.基本控件

    (JButton、JCombobox、JList、JMenu、JSlider、JTextField)

4.不可編輯信息組件

    (JLabel、JProgressBar、JToolTip等

5.可編輯組件

    (JColorChooser、JFileChooser、Jtabel、JTextArea、JTree等)

2、 經常使用的swing組件和容器

1.JFrame

    ² 頂層容器,默認不可見;默認佈局方式爲BorderLayout

    ² 構造函數:

        l JFrame()

        l JFrame(String title)//title 爲框架的標題內容

    ² JFrame經常使用方法

        l setDefaultCloseOperation(int operation)—設置關閉框架的行爲

        參數operation通常是JFrame. EXIT_ON_CLOSE,表示關閉框架時,則退出程序

        l setSize(int width, int height)— 設置框架的大小

        l setVisible(boolean b)—設置框架是否可見,默認爲false

        l getContentPane()—獲取頂層容器的內容面板

        l add(Component comp)—往內容面板添加組件

        l setLayout(LayoutManager mgr)—設置佈局方式,默認爲BorderLayout

example:JDialog 和 JOptionPane的demo

未命名

2.JDialog 和 JOptionPane

a) JDialog

    ² 在已有的窗口上建立對話框,可使用此類建立自定義的對話框

    ² 構造函數:

        JDialog(Dialogowner,Stringtitle, boolean modal)

        JDialog(Frameowner,Stringtitle, boolean modal)

        參數:owner—指定對話框的父窗口

                title—對話框的標題

                modal—對話框的模式(true爲「有模式對話框」,false爲「無模式對話框」

    ² JDialog經常使用方法

        n setSize(int width, int height)— 設置對話框的大小

        n getContentPane()—獲取頂層容器的內容面板

        n add(Component comp)—往內容面板添加組件

        n setLayout(LayoutManager mgr)—設置佈局方式,默認爲BorderLayout

b) JOptionPane

    ² 提供一些現成的、各類經常使用的標準對話框(有模式的對話框)

    ²JOptionPane類裏靜態方法衆多,但幾乎全部靜態方法都遵循showXxxDialog()的形式,以下:

方法名    

描述

showConfirmDialog()

顯示確認對話框

showInputDialog()

顯示輸入文本對話框

showMessageDialog()

顯示信息對話框

showOptionDialog()

顯示選擇性的對話框

        這四種方法的參數都遵循一致的模式:

        ①ParentComponent:指示對話框的父窗口對象,通常爲當前窗口。也能夠爲null即採用缺省的Frame做              爲父窗口,此時對話框將設置在屏幕的正中。

        ②message:指示要在對話框內顯示的描述性的文字

        ③String title:窗口標題

        ④Component:在對話框內要顯示的組件(如按鈕)

        ⑤Icon:在對話框內要顯示的圖標

        ⑥messageType:定義 message 的樣式,通常能夠爲以下的值

                n ERROR_MESSAGE

                n INFORMATION_MESSAGE

                n WARNING_MESSAGE

                n QUESTION_MESSAGE

                n PLAIN_MESSAGE

        ⑦ optionType:定義在對話框的底部顯示的選項按鈕的集合。通常能夠爲

                n DEFAULT_OPTION

                n YES_NO_OPTION

                n YES_NO_CANCEL_OPTION

                n OK_CANCEL_OPTION。

    ² 當showXxxDialog 方法返回整數時,可能的值爲:

        n YES_OPTION

        n NO_OPTION

        n CANCEL_OPTION

        n OK_OPTION

        n CLOSED_OPTION

3.JLabel

    ² 構造函數;

        n JLabel()

        n JLabel(String text)

        n JLabel(Icon image)

        n JLabel(String text, Icon icon, int horizontalAlignment)

其中參數text爲JLabel的文字信息,image爲JLabel的圖標,horizontalAlignment爲文字與圖標在水平方向上的對齊方式,常見的取值有常量 JLabel.LEFT(左對齊),JLabel.CENTER(中對齊), JLabel.RIGHT(右對齊),

    ² JLabel經常使用方法:

        n setText(String text)—設置文字信息

        n setIcon(Icon image)—設置JLabel的圖標

        n setHorizontalAlignment(int alignment)—設置文字與圖標在水平方向的對齊方式

        n setVerticalAlignment(int alignment)—設置文字與圖標在豎直方向的對齊方式

        n setToolTipText(String text)—在JLabel上停留時出現的提示信息

4.JTextField 和 JPasswordField

    ² 都是用來編輯單行文本,JTextField能夠直接看到輸入的字符,JPasswordField將輸入的字符表示成」*」

    ² 構造函數:

JTextField()

JPasswordField()

JTextField(String text)

JPasswordField(String text)

JTextField(int columns)

JPasswordField(int columns)

JTextField(String text, int columns)

JPasswordField(String text, int columns)

    參數text指定文本編輯框顯示的初始文本,columns爲文本編輯框的寬度(大於0)。

       imageimage

    ² 經常使用方法:

        getText()—獲取編輯框的文本信息(String 類型)

        setText(String text)—設置文本信息

        setEditable(boolean b)—設置是否可編輯

5.JButton、JCheckBox(複選框)和JRadioButton(單選按鈕)

    ² 觸擊式組件(單擊這三個組件,都能觸發特定的的事件。)

        JButton——命令式事件 ·

        JCheckBox、JRadioButton—選擇狀態發生變化

    ² 構造函數:

        JButton()

        JButton(Icon icon)

        JButton(String text)

        JButton(Stringtext,Iconicon)

JCheckBox()

JRadioButton()

JCheckBox(Stringtext,Iconicon, boolean selected)

JRadioButton(Stringtext,Iconicon, boolean selected)

參數text爲指定組件顯示的文本信息,icon爲指定組件的圖標,selected指定組件是否被選中

imageimageimage

    ² JCheckBox、JRadioButton經常使用方法:

        setSelected(boolean b)—設置組件的選中狀態

        isSelected()—判斷組件時否被選中

     ² 與ButtonGroup對象配合使用可建立一組按鈕,一次只能選擇其中的一個按鈕。ButtonGroup提供的一個空的構造方法,使用成員方法add(AbstractButton b)添加單選按鈕( JRadioButton是AbstractButton的子類)

     ² 若是須要把多個JRadioButton排成一排或者一列,能夠建立一個佈局爲GridLayout或者BoxLayout的JPanel。

        如:JPanel jpanel = new JPanel(new GridLayout(0,1));//排成一列

               jpanel.add(JRadioButton);

6.JComboBox(組合框),JList,JTextArea和JScrollPane

    ² 用於顯示多行文本的組件

    (一) JComboBox(組合框)

        ² 構造函數:

            JComboBox(Object[] items)

            參數items爲組合框的各個選項

image

        ² 經常使用方法:

            setEditable(boolean aFlag)—設置組合框是否能夠自行輸入一行文本信息,默認爲false。當爲false時,只能選擇組合框中的某個選項

            setMaximumRowCount(int count)—設置顯示的最大行數

            setSelectedIndex(int anIndex)—選擇索引第anIndex+1處的選項

            getSelectedIndex()—返回列表中與給定項匹配的第一個選項的下標值

            getSelectedItem()—返回當前所選項。

            getSelectedObjects()—返回包含所選項的數組。

(二) JList(列表框)

    ² 構造函數:

        JList(Object[] listData)

        參數listData爲列表框的各個選項

    ² 經常使用方法:

        setSelectionMode(int selectionMode)—設置列表的選擇模式。

        selectionMode常爲如下常數:

            ListSelectionModel.SINGLE_SELECTION- 一次只能選擇一個列表選項

            ListSelectionModel.SINGLE_INTERVAL_SELECTION- 一次只能選擇一個連續間隔

            ListSelectionModel.MULTIPLE_INTERVAL_SELECTION –一次可選擇一個或多個選項。此模式是默認設置。

        setSelectedIndex(int index)—設置被選中的選項

        getSelectedIndex()—返回最小的選擇單元的索引

(三) JTextArea (文本區域)

    ² 構造函數;

        JTextArea(Stringtext, int rows, int columns)

        構造具備指定文本text、rows行columns列的 TextArea

7.菜單編寫

    ² 相關的類:

        經過JMenuBar類(利用setJMenuBar()方法加入窗口中)

        JMenu(級聯)

        JMenuItem(菜單項目)

        JCheckBoxMenuItem(選擇性的菜單項目)

        JRadioButtonMenuItem(選擇性的菜單項目(圓點))。

    ² 編程要點:

        a)、產生快捷鍵

            mnuFileNew.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_1, ActionEvent.ALT_MASK));//快捷鍵alt+1

        b)、添加分割條

          mnuFile.addSeparator();

        c)、給菜單加上圖標

            mnuFileNew.setIcon(newImageIcon("new.gif"));

       d)、給菜單加上助記符

            mnuFile.setMnemonic('F'); //alt+F

        e)、要使得多個JRadioButtonMenuItem項目產生單選的效果,能夠將它們放入一個ButtonGroup組件中;不然爲多選效果

        ² example:MenuLookDemo

image

8.工具條JToolBar

    ² 在Swing中的窗口工具條是由JToolBar來實現,它也是一種容器並按照行或列對組件(它們通常爲按鈕)進行分組。

    ² 缺省時爲水平方向但可使用SwingConstants. HORIZONTAL或者SwingConstants. VERTICAL來設置其方向。

    ² 構造函數:

        n JToolBar() 建立出水平方向的工具條(缺省爲HORIZONTAL)。

        n JToolBar(int orientation) 建立出指定方向的工具條。

        n JToolBar(String name) 建立出指定名稱的工具條。

        n JToolBar(String name, int orientation) 建立出指定方向和名稱的工具條。

    ² 工具條上的工具按鈕的事件編程:
        相似於通常的按鈕事件編程,能夠分別爲各個不一樣的按鈕單獨進行事件編程。

    ² 編程方法:

        n 建立出JToolBar對象

        n 而後採用add(Object)方法將組件(能夠爲按鈕或其它組件)加入到工具條中。

        n 最後再將工具條加入到內容面板中

    example:ToolBarDemo

image

9. JTabbedPane(選項卡窗格)

image

    ² 特性:它表現爲一組文件夾頁,每一個文件夾都有標題(以下)

    ² 其內的每一個頁面爲一個JPanel類或者其子類的對象

    ² 構造函數:

        public JTabbedPane(int tabPlacement, int tabLayoutPolicy)

        其中Tabplacement能夠是:

            ² JTabbedPane.TOP(表頭在上面)

            ² JTabbedPane.BOTTOM(表頭在下面)

            ² JTabbedPane.LEFT(表頭在左面)

            ² JTabbedPane.RIGHT(表頭在右面)。

         TablayoutPolicy能夠是

            ² JTabbedPane.WRAP_TAB_LAYOUT(表頭不產生SCROLL效果)

            ² JTabbedPane.SCROLL_TAB_LAYOUT(表頭產生SCROLL效果)

    ² 編程方法:

          建立出JTabbedPane類的對象;

        l 調用addTab()方法加入一個頁面組件(JPanel或其子類);

        l 最後將JTabbedPane類的對象加入到頂級容器的ContentPane中。

相關文章
相關標籤/搜索