Swing的图形介面元件(II)课件.ppt
《Swing的图形介面元件(II)课件.ppt》由会员分享,可在线阅读,更多相关《Swing的图形介面元件(II)课件.ppt(44页珍藏版)》请在三一办公上搜索。
1、Ch13 Swing的圖形介面元件(II),JAVA程式設計入門(II),2023/3/31,2,JPopupMenu彈出式選單元件JMenuBar、JMenu與JMenuItem下拉式選單元件JToolBar工具列元件JFileChooser檔案選擇元件JColorChooser色彩選擇元件多重視窗,大綱,2023/3/31,3,視窗功能表和工具列元件,Swing套件提供功能強大的視窗功能表和工具列元件,可以輕鬆建立應用程式視窗上方的下拉式功能表、工具列和彈出式選單。同樣的,視窗功能表和工具列元件也都是繼承自JComponent,其繼承架構如下圖所示:,2023/3/31,4,JPopupM
2、enu彈出式選單元件-說明,JPopupMenu彈出式選單元件繼承自JComponent,可以建立視窗應用程式滑鼠右鍵顯示的快顯功能表,內含選項的JMenuItem物件或JSeparator分隔線物件,如下圖所示:,2023/3/31,5,JPopupMenu彈出式選單元件-建立物件,在建立JPopupMenu物件後,使用add()方法新增選項的JMenuItem物件,addSeparator()方法可以新增選單分隔線的JSeparator物件。popup=new JPopupMenu();popup.add(blue=new JMenuItem(藍色);popup.add(yellow=ne
3、w JMenuItem(黃色);popup.add(green=new JMenuItem(綠色);popup.addSeparator();popup.add(紅色);,2023/3/31,6,JPopupMenu彈出式選單元件-事件處理,新增MouseListener傾聽者物件且實作mousePressed()和mouseReleased()方法來顯示彈出式視窗,如下所示:public void mousePressed(MouseEvent evt)if(evt.isPopupTrigger()popup.show(evt.getComponent(),evt.getX(),evt.ge
4、tY();public void mouseReleased(MouseEvent evt)if(evt.isPopupTrigger()popup.show(evt.getComponent(),evt.getX(),evt.getY();,2023/3/31,7,JPopupMenu建構子與方法,建構子:JPopupMenu()JPopupMenu(String):參數String是標題文字,方法:JMenuItem add(JMenuItem)JMenuItem add(String)void addSeparator()void insert(Component,int)void re
5、move(JMenuItem)void remove(int)void removeAll()void show(Component,int,int),2023/3/31,8,範例1:使用PopupMenu(1/4),建立Popup Menu的選擇項:import javax.swing.*;import java.awt.*;import java.awt.event.*;/繼承JFrame類別,實作ActionListener介面public class Ch09_01 extends JFrame implements ActionListener private JPopupMenu
6、popup;private JMenuItem blue,yellow,green;private Container c;/建構子 public Ch09_01()super(JPopupMenu元件範例);c=getContentPane();c.setBackground(Color.pink);popup=new JPopupMenu();popup.add(blue=new JMenuItem(藍色);blue.addActionListener(this);popup.add(yellow=new JMenuItem(黃色);yellow.addActionListener(thi
7、s);popup.add(green=new JMenuItem(綠色);green.addActionListener(this);popup.addSeparator();popup.add(紅色);/使用字串新增選項,2023/3/31,9,範例1:使用PopupMenu(2/4),傾聽者:addMouseListener(new MouseAdapter()public void mousePressed(MouseEvent evt)if(evt.isPopupTrigger()/顯示選單 popup.show(evt.getComponent(),evt.getX(),evt.ge
8、tY();public void mouseReleased(MouseEvent evt)if(evt.isPopupTrigger()/顯示選單 popup.show(evt.getComponent(),evt.getX(),evt.getY(););,2023/3/31,10,範例1:使用PopupMenu(3/4),實作事件處理方法:public void actionPerformed(ActionEvent evt)if(evt.getSource()=blue)c.setBackground(Color.blue);/藍色 if(evt.getSource()=yellow)c
9、.setBackground(Color.yellow);/黃色 if(evt.getSource()=green)c.setBackground(Color.green);/綠色 repaint();/重繪,2023/3/31,11,範例1:使用PopupMenu(4/4),主程式:public static void main(String args)/建立Swing應用程式 Ch09_01 app=new Ch09_01();/關閉視窗事件,結束程式的執行 app.addWindowListener(new WindowAdapter()public void windowClosing
10、(WindowEvent evt)System.exit(0););app.setSize(300,200);/設定尺寸 app.setVisible(true);/顯示視窗,2023/3/31,12,Menu屬MenuComponent的延伸類別,12,2023/3/31,13,enu屬MenuComponent的延伸類別,13,以記事本為例說明選單及其相關元件,2023/3/31,14,14,enu屬MenuComponent的延伸類別,Menu位於視窗標題列的下方,使用選單時,框架(Frame)會有一個選單列(MenuBar),選單列內有數個選單(Menu),每個Menu內會有多個選項(
11、MenuItem)或核選式選項(CheckboxMenuItem),選單是選項的容器,選單也可以是另一個選單的容器,2023/3/31,15,JMenuBar、JMenu與JMenuItem下拉式選單元件-說明,在JFrame、JInternalFrame、JApplet和JDialog等類別的視窗新增下拉式功能表選單,類別建構子需要使用JMenuBar、JMenu和JMenuItem物件來建立下拉式功能表的物件。,2023/3/31,16,JMenuBar、JMenu與JMenuItem下拉式選單元件-JMenuBar元件,JMenuBar元件是視窗上方的功能表列,如下所示:JMenuBar
12、 jmb=new JMenuBar();setJMenuBar(jmb);上述程式碼建立JMenuBar物件後,預設是空的功能表列,然後使用setJMenuBar()方法新增到JFrame視窗,換句話說,目前在視窗上方已經擁有一個空的功能表列。,2023/3/31,17,JMenuBar、JMenu與JMenuItem下拉式選單元件-JMenu元件,在建立好JMenuBar物件後,就可以新增功能表列下拉式子選單的JMenu物件,如下所示:JMenu file=new JMenu(檔案(F);JMenuItem item;file.add(item=new JMenuItem(新增(N),Key
13、Event.VK_N);file.add(item=new JMenuItem(開啟(O),KeyEvent.VK_O);JMenu setting=new JMenu(參數設定);file.add(setting);file.addSeparator();file.add(item=new JMenuItem(關閉(X),KeyEvent.VK_X);jmb.add(file);,2023/3/31,18,JMenuBar、JMenu與JMenuItem下拉式選單元件-Item元件,JMenuItem、JCheckBoxMenuItem與JRadioButtonMenuItem元件JMenu
14、Item、JCheckBoxMenuItem與JRadioButtonMenuItem類別的建構子可以新增選單的選項、核取方塊和選項鈕選項。,2023/3/31,19,範例2:建立Menu(1/5),基本宣告:/*程式範例:Ch09_02.java*/import javax.swing.*;import java.awt.*;import java.awt.event.*;/繼承JFrame類別,實作ActionListener介面public class Ch09_02 extends JFrame implements ActionListener private JRadioButto
15、nMenuItem red,green,blue;private JMenuItem openItem,newItem,exitItem,codeItem,typeItem;private JMenu setting;private Container c;/建構子 public Ch09_02()super(JMenuBar元件範例);c=getContentPane();c.setBackground(Color.white);JMenuBar jmb=new JMenuBar();setJMenuBar(jmb);,2023/3/31,20,範例2:建立Menu(2/5),建立第一個Fi
16、le的enu:JMenu file=new JMenu(檔案(F);file.setMnemonic(KeyEvent.VK_F);openItem=new JMenuItem(新增(N),KeyEvent.VK_N);newItem=new JMenuItem(開啟(O),KeyEvent.VK_O);exitItem=new JMenuItem(關閉(X),KeyEvent.VK_X);setting=new JMenu(參數設定);codeItem=new JMenuItem(編碼);typeItem=new JMenuItem(字型);openItem.addActionListene
17、r(this);newItem.addActionListener(this);exitItem.addActionListener(this);codeItem.addActionListener(this);typeItem.addActionListener(this);file.add(openItem);file.add(newItem);setting.add(codeItem);setting.add(typeItem);file.add(setting);file.addSeparator();/分隔線 file.add(exitItem);jmb.add(file);/新增f
18、ile選單,2023/3/31,21,範例2:建立Menu(3/5),建立第二個Menu:JMenu choice=new JMenu(選項(C);choice.setMnemonic(KeyEvent.VK_C);JCheckBoxMenuItem check;check=new JCheckBoxMenuItem(切換);check.addActionListener(this);choice.add(check);ButtonGroup buttongroup=new ButtonGroup();red=new JRadioButtonMenuItem(紅色);choice.add(re
19、d);buttongroup.add(red);red.addActionListener(this);green=new JRadioButtonMenuItem(綠色);choice.add(green);buttongroup.add(green);green.addActionListener(this);blue=new JRadioButtonMenuItem(藍色);choice.add(blue);buttongroup.add(blue);blue.addActionListener(this);jmb.add(choice);,2023/3/31,22,範例2:建立Menu
20、(4/5),實作事件處理方法:public void actionPerformed(ActionEvent evt)if(evt.getSource()=exitItem)System.exit(0);if(evt.getSource()=red)c.setBackground(Color.red);if(evt.getSource()=green)c.setBackground(Color.green);if(evt.getSource()=blue)c.setBackground(Color.blue);repaint();/重繪,2023/3/31,23,範例2:建立Menu(5/5)
21、,主程式 public static void main(String args)/建立Swing應用程式 Ch09_02 app=new Ch09_02();/關閉視窗事件,結束程式的執行 app.addWindowListener(new WindowAdapter()public void windowClosing(WindowEvent evt)System.exit(0););app.setSize(300,200);/設定尺寸 app.setVisible(true);/顯示視窗,2023/3/31,24,JToolBar工具列元件-說明,JToolBar工具列元件繼承自JCom
22、ponent類別,可以建立視窗的工具列按鈕,它也屬於一種容器元件,在建立好JToolBar物件後,就可以新增GUI元件到工具列,如下圖所示:,2023/3/31,25,JToolBar工具列元件-建立物件,程式碼在建立好JToolBar元件後,使用add()方法新增GUI元件,最後只需將JToolBar元件視為GUI元件,新增到最上層容器物件即可。JToolBar toolBar=new JToolBar();blue=new JButton(new ImageIcon(blue1.gif);yellow=new JButton(new ImageIcon(yellow1.gif);green
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- Swing 图形 介面 元件 II 课件
链接地址:https://www.31ppt.com/p-4009171.html