Java詳細(xì)解析下拉菜單和彈出菜單的使用
Swing菜單組件
下拉式菜單介紹
創(chuàng)建一個(gè)下拉式菜單,需要三個(gè)組件,JmenuBar(菜單欄),Jmenu(菜單),Jmenultem(菜單項(xiàng))。
下拉式菜單的三個(gè)組件
JMenuBar(菜單欄)
表示一個(gè)水平的菜單欄,用來(lái)管理菜單,不參與同用戶的交互式操作,菜單欄可以放在容器的任何位置,但通常情況下會(huì)使用頂級(jí)窗口的setJMenuBar方法將它放置在頂級(jí)窗口的頂部,JMenuBar有一個(gè)午無(wú)參的構(gòu)造函數(shù),創(chuàng)建菜單欄時(shí),只需要使用new關(guān)鍵字創(chuàng)建JMenuBar對(duì)象,創(chuàng)建完成之后,可以調(diào)用add(JMenu c)方法添加JMenu菜單。
JMenu(菜單)
用來(lái)整合管理菜單項(xiàng),菜單可以是單一層次的結(jié)構(gòu),也可以是多層次的結(jié)構(gòu),可以使用JMenu(String text)創(chuàng)建JMenu菜單,其中的參數(shù)text表示菜單上的文本。
菜單的常用方法
方法聲明 | 功能描述 |
---|---|
void JMenuItem add(JMenuItem menuItem) | 將菜單項(xiàng)添加到菜單末尾,返回此菜單項(xiàng) |
void addSeparator() | 將分隔符添加到菜單末尾 |
JMenuItem getItem(int pos) | 返回指定索引處的菜單項(xiàng),第一個(gè)菜單項(xiàng)的索引為0 |
int getItemCount() | 返回菜單上的項(xiàng)數(shù),菜單項(xiàng)和分隔符都計(jì)算在內(nèi) |
void JMenuItem insert(JmuenuItem menuItem,int pos) | 在指定索引處插入菜單項(xiàng) |
void insertsertSeparator(int pos) | 在指定索引處插入分隔符 |
void remove(int pos) | 從菜單中移除指定索引處的菜單項(xiàng) |
void remove(JMenuItem menuItem) | 從菜單中移除指定的菜單項(xiàng) |
void removeAll() | 從菜單中移除所有的菜單項(xiàng) |
JMenuItem(菜單項(xiàng))
在創(chuàng)建菜單項(xiàng)時(shí),通常會(huì)采用構(gòu)造方法JMenuItem為菜單項(xiàng)指定文本內(nèi)容。因?yàn)镴MenuItem是繼承AbstractButton類的,所以可以吧它看作一個(gè)按鈕,可以用無(wú)參的構(gòu)造方法創(chuàng)建一個(gè)菜單項(xiàng),可以調(diào)用從AbstractButton類中繼承的setText(String text)方法和setItem()方法為其設(shè)置文本和圖標(biāo)。
下拉式菜單的創(chuàng)建與使用
package Swing; import javax.swing.*; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; public class CaiDan extends JFrame { public CaiDan(){ //創(chuàng)建菜單欄 JMenuBar menuBar=new JMenuBar(); //將菜單欄添加到JFrame窗口中 this.setJMenuBar(menuBar); //創(chuàng)建菜單 JMenu menu=new JMenu("操作"); //將菜單添加到菜單欄上 menuBar.add(menu); //創(chuàng)建兩個(gè)菜單項(xiàng) JMenuItem item1=new JMenuItem("彈出窗口"); JMenuItem item2=new JMenuItem("關(guān)閉"); //為菜單項(xiàng)添加事件監(jiān)聽(tīng)器 item1.addActionListener(new ActionListener() { @Override public void actionPerformed(ActionEvent e) { //創(chuàng)建一個(gè)JDialog窗口 JDialog dialog=new JDialog(CaiDan.this,true); dialog.setTitle("彈出窗口"); dialog.setSize(200,200); dialog.setLocation(50,50); dialog.setVisible(true); } }); item2.addActionListener(new ActionListener() { @Override public void actionPerformed(ActionEvent e) { System.exit(0); } }); //將菜單項(xiàng)添加到菜單中 menu.add(item1); menu.addSeparator(); menu.add(item2); this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); this.setSize(300,300); this.setVisible(true); } public static void main(String[] args) { new CaiDan(); } }
創(chuàng)建和添加下拉式菜單的一般步驟
- 創(chuàng)建一個(gè)JMenuBar菜單欄對(duì)象,將其放置在JFrame窗口的頂部
- 創(chuàng)建JMenu菜單對(duì)象,將其添加到JMenuBar菜單欄中
- 創(chuàng)建JMenuItem菜單項(xiàng),將其添加到JMenuBar菜單中。
彈出式菜單介紹
在系統(tǒng)中單擊右鍵出現(xiàn)的菜單就是彈出式菜單,在Java的Swing組件中,彈出式菜單用JPopupMenu表示。通過(guò)add()方法添加JMenuItem菜單項(xiàng),默認(rèn)是不可見(jiàn)的。
彈出式菜單的創(chuàng)建與使用
package Swing; import javax.swing.*; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.awt.event.MouseAdapter; import java.awt.event.MouseEvent; public class TanChu extends JFrame { private JPopupMenu popupMenu; public TanChu(){ //創(chuàng)建一個(gè)JPopupMenu菜單 popupMenu=new JPopupMenu(); //創(chuàng)建三個(gè)JMenuItem菜單項(xiàng) JMenuItem refreshItem=new JMenuItem("refresh"); JMenuItem createItem=new JMenuItem("create"); JMenuItem exitItem=new JMenuItem("exit"); //為exitItem菜單項(xiàng)添加事件監(jiān)聽(tīng)器 exitItem.addActionListener(new ActionListener() { @Override public void actionPerformed(ActionEvent e) { System.exit(0); } }); //向JPopupMenu菜單添加菜單項(xiàng) popupMenu.add(refreshItem); popupMenu.add(createItem); popupMenu.addSeparator(); popupMenu.add(exitItem); //向JFrame窗口添加clicked鼠標(biāo)事件監(jiān)聽(tīng)器 this.addMouseListener(new MouseAdapter() { @Override public void mouseClicked(MouseEvent e) { //通過(guò)值匹配,當(dāng)點(diǎn)擊右鍵的時(shí)候,顯示JPopupMenu菜單 if(e.getButton()==e.BUTTON3){ popupMenu.show(e.getComponent(),e.getX(),e.getY()); } } }); this.setSize(300,300); this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); this.setVisible(true); } public static void main(String[] args) { new TanChu(); } }
小結(jié)
以上就是我對(duì)于Java中幾種常見(jiàn)菜單的理解,以便于我們之后在不同開(kāi)發(fā)中根據(jù)不同的情況設(shè)置不同的菜單,提高用戶的體驗(yàn)感。
到此這篇關(guān)于Java詳細(xì)解析下拉菜單和彈出菜單的使用的文章就介紹到這了,更多相關(guān)Java菜單內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
IDEA的Swing可視化插件JFormDesigner詳解
JFormDesigner是一個(gè)專業(yè)的軟件應(yīng)用程序,專門(mén)用于幫助您開(kāi)發(fā)Java?Swing用戶界面,而無(wú)需具備編程技能。它可作為獨(dú)立實(shí)用程序使用,也可以將其用作各種IDE的插件,本文給大家介紹idea?Swing可視化插件,感興趣的朋友一起看看吧2022-06-06Linux下啟動(dòng)jar包的幾種常見(jiàn)方式
最近在linux上發(fā)布了一個(gè)SpringBoot項(xiàng)目,研究了一下jar包在Linux上的集中啟動(dòng)方式,這篇文章主要給大家介紹了Linux下啟動(dòng)jar包的幾種常見(jiàn)方式,需要的朋友可以參考下2023-07-07線程池之newFixedThreadPool定長(zhǎng)線程池的實(shí)例
這篇文章主要介紹了線程池之newFixedThreadPool定長(zhǎng)線程池的實(shí)例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2021-06-06spring?boot?導(dǎo)出數(shù)據(jù)到excel的操作步驟(demo)
這篇文章主要介紹了spring?boot?導(dǎo)出數(shù)據(jù)到excel的實(shí)現(xiàn)步驟,文中通過(guò)打開(kāi)一個(gè)平時(shí)練習(xí)使用的springboot的demo給大家詳細(xì)介紹,需要的朋友可以參考下2022-03-03Java的String類中的startsWith方法和endsWith方法示例詳解
大家應(yīng)該都知道startsWith()方法用于檢測(cè)字符串是否以指定的前綴開(kāi)始,endsWith()方法用于測(cè)試字符串是否以指定的后綴結(jié)束,本文就Java的String類中的startsWith方法和endsWith方法給大家詳細(xì)講解,感興趣的朋友一起看看吧2023-11-11Java swing框架實(shí)現(xiàn)的貪吃蛇游戲完整示例
這篇文章主要介紹了Java swing框架實(shí)現(xiàn)的貪吃蛇游戲,結(jié)合完整實(shí)例形式分析了java使用swing框架結(jié)合awt圖形繪制實(shí)現(xiàn)貪吃蛇游戲的具體步驟與相關(guān)實(shí)現(xiàn)技巧,需要的朋友可以參考下2017-12-12