Swing的中间层容器类别

上传人:博****1 文档编号:579161345 上传时间:2024-08-26 格式:PPT 页数:53 大小:663.02KB
返回 下载 相关 举报
Swing的中间层容器类别_第1页
第1页 / 共53页
Swing的中间层容器类别_第2页
第2页 / 共53页
Swing的中间层容器类别_第3页
第3页 / 共53页
Swing的中间层容器类别_第4页
第4页 / 共53页
Swing的中间层容器类别_第5页
第5页 / 共53页
点击查看更多>>
资源描述

《Swing的中间层容器类别》由会员分享,可在线阅读,更多相关《Swing的中间层容器类别(53页珍藏版)》请在金锄头文库上搜索。

1、Swing的中間層容器類別nSwing套件的中間層容器類別的目的是將Swing元件群組化,以便使用版面配置管理員來編排新增的GUI元件,Swing套件提供相當多種中間層容器類別。q例如:JPanel、JScrollPane、JSplitPane、JTabbedPane和JInternalFrame等。q範例程式: http:/mail.tajen.edu.tw/reler/object/Ch10_4_6.javaJPanel類別-說明與建構子nJPanel類別屬於一般用途的中間層容器,預設為透明、沒有背景色彩,這是一種看不見的中間層容器類別,預設使用FlowLayout版面配置,其使用方式類似

2、ContentPane類別,JPanel類別的建構子,如下表所示:JPanel類別-方法nJPanel關於版面配置的相關方法,如下表所示:JScrollPane類別-說明與建構子nJScrollPane類別擁有捲動軸,可以顯示更大尺寸的Swing元件。例如:JTextArea文字區域因為可以輸入整篇文章,所以需要JScrollPane新增捲動軸功能來檢視這篇文章。JScrollPane類別的建構子,如下表所示:JScrollPane類別-方法nJScrollPane類別的相關方法,如下表所示:Swing的圖形介面元件n基本圖形介面元件nJTextComponents文字元件n視窗功能表和工具列

3、元件n檔案與色彩選擇元件n多重視窗介面JInternalFrame基本圖形介面元件nJLabel與JButton標籤與按鈕元件nJCheckBox核取方塊元件nJRadioButton選項鈕元件nJComboBox下拉式清單元件nJList清單方塊元件nJScrollBar與JSlider捲動與滑動軸元件基本圖形介面元件-說明nSwing套件的圖形介面元件都是繼承自JComponent,各圖形元件類別的繼承架構,如下圖所示:基本圖形介面元件-方法1nJComponet類別關於圖形介面元件的相關方法,如下表所示:基本圖形介面元件-方法2JLabel與JButton標籤與按鈕元件-JLabel元件

4、(說明)nJLabel元件繼承自JComponent類別,可以顯示一段文字內容或圖示(需要配合ImageIcon物件載入圖片),主要的目的是說明使用介面的欄位用途,或顯示訊息文字。n例如:使用JLabel1元件顯示文字欄位名稱”關閉”和yellow.gif圖片,如下所示:q範例程式:http:/mail.tajen.edu.tw/reler/object/btlbl.javaJLabel label1 = new JLabel(關閉);ImageIcon yellow = new ImageIcon(“yellow.gif”);JLabel label2 = new JLabel(yellow

5、);JLabel與JButton標籤與按鈕元件-JLabel元件(圖例)JLabel與JButton標籤與按鈕元件-JButton元件(建立物件)nJButton元件繼承自AbstractButton類別,這是可以使用滑鼠按一下的按鈕元件,如下所示:JButton button1 = new JButton(切換(Alt_S);JButton button2 = new JButton(yellow);n上述程式碼建立的JButton物件,其建構子參數分別為字串和圖形,字串是顯示在按鈕上的說明文字。JLabel與JButton標籤與按鈕元件-JButton元件(事件處理)nJButton元件的

6、目的是為了讓使用者按一下按鈕,所以JButton元件需要新增傾聽者物件進行事件處理,如下所示:button1.addActionListener(this); public void actionPerformed(ActionEvent evt) if (evt.getSource() = button1) if ( flag = 0 ) label.setText(開啟); else label.setText(關閉); flag = 1 - flag; JCheckBox核取方塊元件-說明nJCheckBox核取方塊元件繼承自JToggleButton,屬於AbstractButton的

7、子類別,這個元件是一個開關,按一下可以更改狀態值為true或false,顯示的外觀為是在核取方塊中打勾,其初始值為false,即沒有打勾。JCheckBox核取方塊元件-範例n程式碼建立名為”綠色(G)”的核取方塊,選取核取方塊需要新增ItemListener傾聽者物件來進行處理。JCheck Box greenBox = new JCheckBox(綠色(G);greenBox.addItemListener(this);範例程式: http:/mail.tajen.edu.tw/reler/object/CheckBox1.java JRadioButton選項鈕元件-說明nJRadioB

8、utton選項鈕元件也是繼承自JToggleButton,屬於AbstractButton的子類別,通常為一組選項鈕的單選題,在一組選項鈕中,按一下選項鈕就可以更改狀態值為true或false,在一組選項鈕只能有一個選項鈕為true。JRadioButton選項鈕元件-範例n選項鈕元件為一組,所以需要使用ButtonGroup物件建立這組選項鈕,如下所示:ButtonGroup buttonGroup = new ButtonGroup(); baby1Button = new JRadioButton(女寶寶(F); baby1Button.addItemListener(this);but

9、tonGroup.add(baby1Button); baby2Button = new JRadioButton(男寶寶(M); baby2Button.addItemListener(this);buttonGroup.add(baby2Button);範例程式:http:/mail.tajen.edu.tw/reler/object/CheckRadio.javaJComboBox下拉式清單元件-說明nJComboBox下拉式清單元件是繼承自JComponent,這種選擇元件只顯示一個項目(目前選擇的選項),需要按一下旁邊的向下箭頭,才會拉出整張選單的選項。JComboBox下拉式清單元

10、件-建立n建立JComboBox元件是使用字串陣列新增選項。JComboBox元件在實作上需要新增ActionListener或ItemListener傾聽者物件來進行處理。String items=使用現金,使用信用卡,直接轉帳,使用支票;JComboBox list = new JComboBox(items);n範例程式:http:/mail.tajen.edu.tw/reler/object/CheckCombo.javaJComboBox下拉式清單元件-可編輯nJComboBox元件擁有2種不同形式,在前述建立的JComboBox元件是不可編輯選項,如需編輯,請加上下列程式碼,如下所

11、示:list.setEditable(true);n上述程式碼設定JComboBox元件的選項是可編輯的,如果沒有所需的選項,可以如同文字欄位一般自行輸入和新增選項。n範例程式:http:/mail.tajen.edu.tw/reler/object/CheckCombo1.javaJList清單方塊元件-說明nJList清單方塊元件也是繼承自JComponent,這個元件可以顯示整張清單選項,而且允許複選,如下圖所示:JList清單方塊元件-唯讀n程式碼使用字串陣列建立JList元件的清單方塊,建構子預設建立的JList元件並不能新增、刪除和取代選項,JList元件需要使用JScrollPa

12、ne來新增清單方塊的捲動軸。String names = “John, “jane”, “Tom, “Jack;JList fixedList = new JList(names);JScrollPane scroll1 = new JScrollPane(fixedList);JList清單方塊元件-可編輯n建立允許新增、刪除和取代選項的清單方塊JList元件,請使用DefaultListModel物件建立JList元件,如下所示:DefaultListModel dlistModel = new DefaultListModel();for (int i = 0; i names.leng

13、th; i+) dlistModel.addElement(namesi);nameList = new JList(dlistModel);n上述程式碼在建立好DefaultListModel物件後,使用addElement()方法新增選項。n範例程式:http:/mail.tajen.edu.tw/reler/object/CheckList.javaJScrollBar與JSlider捲動與滑動軸元件-說明nJScrollBar與JSlider元件的操作十分相似,都是調整捲動軸中的方塊或滑動軸的指標來取得使用者選擇的比例值,只不過JScrollBar元件多了2個方向箭的調整鈕。JScro

14、llBar與JSlider捲動與滑動軸元件-JScrollBar元件nJScorllBar元件繼承自JComponent元件,在建立好JScrollBar元件後,只需調整捲動軸就可以傳回指定範圍的值,如下所示:JScrollBar s3 = new JScrollBar(JScrollBar.HORIZONTAL,50,10,0,100);n上述程式碼建立水平捲動軸,最後2個參數指出範圍值是0100,目前值為50,因為可見區域為10,所以實際的捲動值需刪除可見區域10,所以是090。n範例程式:http:/mail.tajen.edu.tw/reler/object/CheckScroll.j

15、avaJScrollBar與JSlider捲動與滑動軸元件-JSlider元件nJSlider元件是繼承自JComponent元件,在建立好JSlider元件後,只需調整滑動軸中間的指標就可以傳回指定範圍的值,如下所示:JSlider s4 = new JSlider(JSlider.HORIZONTAL, 0, 100, 50);n上述程式碼建立水平滑動軸,中間2個參數指出範圍值是0100,最後1個參數是目前值為50。JTextComponent文字元件nSwing套件的文字元件可以讓使用者輸入文字內容,在本節說明的文字元件是繼承自JTextComponent,其繼承架構,如下圖所示:JTe

16、xtField與JPasswordField文字方塊元件-說明nJTextField文字方塊元件是用來輸入或顯示一行可捲動的文字內容,JPasswordField也是相同,只是輸入的文字是使用替代字元顯示。JTextField與JPasswordField文字方塊元件-程式碼nJTextField文字方塊元件與JPasswordField的建構子參數是欄位寬度,如下所示:JTextField text = new JTextField(12);JPasswordField password = new JPasswordField(12);n範例程式:http:/mail.tajen.edu.

17、tw/reler/object/Checktext.javaJTextArea文字區域元件-說明nJTextArea文字區域元件能夠輸入或顯示多行文字內容,使用”n”、”nr”或”r”符號換行(需視作業系統而定),如下圖所示:JTextArea文字區域元件-說明nJTextArea文字區域元件使用”n”、”nr”或”r”符號換行(需視作業系統而定),如下所示:JTextArea area = new JTextArea(等待輸入資料.n, 15, 30);JScrollPane scroll = new JScrollPane(area);n上述程式碼建立指定初始字串、寬和高的JTextAre

18、a物件,因為文字區域需要捲動,所以使用JScrollPane容器元件替文字區域加上捲動軸。視窗功能表和工具列元件nSwing套件提供功能強大的視窗功能表和工具列元件,可以輕鬆建立應用程式視窗上方的下拉式功能表、工具列和彈出式選單。n同樣的,視窗功能表和工具列元件也都是繼承自JComponent,其繼承架構如下圖所示:JPopupMenu彈出式選單元件-說明nJPopupMenu彈出式選單元件繼承自JComponent,可以建立視窗應用程式滑鼠右鍵顯示的快顯功能表,內含選項的JMenuItem物件或JSeparator分隔線物件,如下圖所示:JPopupMenu彈出式選單元件-建立物件n在建立J

19、PopupMenu物件後,使用add()方法新增選項的JMenuItem物件,addSeparator()方法可以新增選單分隔線的JSeparator物件。 popup = new JPopupMenu();popup.add(blue = new JMenuItem(藍色);popup.add(yellow = new JMenuItem(黃色);popup.add(green = new JMenuItem(綠色);popup.addSeparator();popup.add(紅色);JPopupMenu彈出式選單元件-事件處理n新增MouseListener傾聽者物件且實作mousePr

20、essed()和mouseReleased()方法來顯示彈出式視窗,如下所示:public void mousePressed(MouseEvent evt) if (evt.isPopupTrigger() popup.show(evt.getComponent(), evt.getX(), evt.getY();public void mouseReleased(MouseEvent evt) if (evt.isPopupTrigger() popup.show(evt.getComponent(), evt.getX(), evt.getY();JMenuBar、JMenu與JMenu

21、Item下拉式選單元件-說明n在JFrame、JInternalFrame、JApplet和JDialog等類別的視窗新增下拉式功能表選單,類別建構子需要使用JMenuBar、JMenu和JMenuItem物件來建立下拉式功能表的物件。JMenuBar、JMenu與JMenuItem下拉式選單元件- JMenuBar元件nJMenuBar元件是視窗上方的功能表列,如下所示:JMenuBar jmb = new JMenuBar();setJMenuBar(jmb);n上述程式碼建立JMenuBar物件後,預設是空的功能表列,然後使用setJMenuBar()方法新增到JFrame視窗,換句話說

22、,目前在視窗上方已經擁有一個空的功能表列。JMenuBar、JMenu與JMenuItem下拉式選單元件-JMenu元件n在建立好JMenuBar物件後,就可以新增功能表列下拉式子選單的JMenu物件,如下所示:JMenu file = new JMenu(檔案(F);JMenuItem item;file.add(item = new JMenuItem(新增(N),KeyEvent.VK_N);file.add(item = new JMenuItem(開啟(O),KeyEvent.VK_O);JMenu setting = new JMenu(參數設定);file.add(setting

23、);file.addSeparator();file.add(item = new JMenuItem(關閉(X),KeyEvent.VK_X);jmb.add(file);JMenuBar、JMenu與JMenuItem下拉式選單元件-Item元件JMenuItem、JCheckBoxMenuItem與JRadioButtonMenuItem元件nJMenuItem、JCheckBoxMenuItem與JRadioButtonMenuItem類別的建構子可以新增選單的選項、核取方塊和選項鈕選項。q範例程式: http:/mail.tajen.edu.tw/reler/object/Ch11_

24、3_2.javaJToolBar工具列元件-說明nJToolBar工具列元件繼承自JComponent類別,可以建立視窗的工具列按鈕,它也屬於一種容器元件,在建立好JToolBar物件後,就可以新增GUI元件到工具列,如下圖所示:JToolBar工具列元件-建立物件n程式碼在建立好JToolBar元件後,使用add()方法新增GUI元件,最後只需將JToolBar元件視為GUI元件,新增到最上層容器物件即可。JToolBar toolBar = new JToolBar();blue = new JButton(new ImageIcon(blue1.gif);yellow = new JBu

25、tton(new ImageIcon(yellow1.gif);green = new JButton(new ImageIcon(green1.gif);toolBar.add(blue);toolBar.add(yellow);toolBar.add(green);q範例程式: http:/mail.tajen.edu.tw/reler/object/CheckToolBar.java檔案與色彩選擇元件-說明nSwing套件擁有瀏覽檔案系統選取檔案或資料夾的JFileChooser和選取色彩的JColorChooser元件2種選擇元件,這2個元件都是繼承自JComponent,其繼承架構如

26、下圖所示:JFileChooser檔案選擇元件-說明nJFileChooser檔案選擇元件可以顯示對話方塊瀏覽檔案系統,以便讓使用者選取檔案或資料夾。JFileChooser檔案選擇元件-開啟檔案對話方塊n例如:開啟或儲存指定檔案,如下所示:JFileChooser jfc = new JFileChooser();n上述程式碼建立JFileChooser物件後,使用showOpenDialog()方法顯示開啟檔案對話方塊,如下所示:int n = jfc.showOpenDialog(Ch11_4_1.this);if (n = JFileChooser.APPROVE_OPTION) Fi

27、le file = jfc.getSelectedFile(); JFileChooser檔案選擇元件-儲存檔案對話方塊n儲存檔案對話方塊是使用showSaveDialog()方法來顯示,如下所示:int m = jfc.showSaveDialog(Ch11_4_1.this);if (m = JFileChooser.APPROVE_OPTION) File file = jfc.getSelectedFile(); JColorChooser色彩選擇元件-說明nJColorChooser色彩選擇元件提供多種標籤和調色盤的色彩選擇對話方塊,如果Java應用程式需要讓使用者選擇色彩,就可以使

28、用JColorChooser元件,如右圖所示:JColorChooser色彩選擇元件-建立物件nJColorChooser色彩選擇元件的建立,如下所示:JColorChooser jcc = new JColorChooser();n程式碼建立JColorChooser物件後,使用showDialog()方法顯示色彩選擇對話方塊,如下所示:Color newColor = jcc.showDialog(Ch11_4_2.this, 選擇背景色彩, c.getBackground();if (newColor != null) c.setBackground(newColor);多重視窗介面JI

29、nternalFrame-說明n一般來說,視窗應用程式都不會只有一個視窗,如果需要在JFrame視窗開啟其它視窗,就可以使用JInternalFrame類別在JFrame視窗內建立多重視窗。其繼承架構如下圖所示:多重視窗介面JInternalFrame-JDesktopPane和JLayeredPane類別nJInternalFrame物件是新增在JDesktopPane物件(在使用上如同JFrame的ContentPane),所以需要先建立JDesktopPane物件,如下所示:JDesktopPane jdesktop = new JDesktopPane();n上述程式碼建立JDeskt

30、opPane物件後,JInternalFrame物件就是新增到此容器物件,因為JDesktopPane是JLayeredPane的子類別,所以能夠建立多個重疊的內層視窗。多重視窗介面JInternalFrame- JInternalFrame類別(說明)JInternalFrame類別n在JInternalFrame類別部分,筆者準備直接繼承JInternalFrame建立InternalFrame類別。多重視窗介面JInternalFrame- JInternalFrame類別(範例)class InternalFrame extends JInternalFrame static int

31、iframeCount = 0; static final int offsetX = 25; static final int offsetY = 25; public InternalFrame() super(內層視窗: + (+iframeCount), true, / 可調整尺寸 true, / 可關閉 true, / 可最大化 true); / 可縮小成圖示 setSize(300,200); / 設定尺寸 / 設定位置 setLocation(offsetX*iframeCount, offsetY*iframeCount); 多重視窗介面JInternalFrame- JInternalFrame類別(createInternalFrame()方法)private void createInternalFrame() InternalFrame iframe = new InternalFrame(); iframe.setVisible(true); / 顯示內層視窗 jdesktop.add(iframe); / 加入上層視窗 try iframe.setSelected(true); catch(java.beans.PropertyVetoException e)

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 办公文档 > 工作计划

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号