java菜单如何点解_【Java】详解菜单组件
在這篇文章中,筆者會(huì)介紹Java圖形界面編程中菜單組件的用法。關(guān)于菜單組件,因?yàn)閖ava存在AWT編程和Swing編程,所以菜單組件也存在AWT菜單和Swing菜單。因?yàn)镾wing組件使用的比較多,所以筆者的案例中都是運(yùn)用Swing菜單中的類(lèi)。
在介紹Swing菜單之前,先看看AWT菜單組件的類(lèi)關(guān)系圖:
Swing菜單組件與AWT菜單組件中的類(lèi)結(jié)構(gòu)類(lèi)似。
Swing菜單組件的用法在API中已經(jīng)給出了,所以筆者在這里不必要列出。這里筆者要說(shuō)一說(shuō),Swing菜單組件中的快捷鍵,下面筆者會(huì)詳細(xì)介紹Swing中菜單的快捷鍵。
public void setMnemonic(int mnemonic)
這個(gè)方法可以設(shè)置鍵盤(pán)助記字符,不過(guò)該方法的使用是依賴(lài)Swing組件的菜單分層結(jié)構(gòu)的,也就是說(shuō)設(shè)置了該助記字符的菜單項(xiàng)目必須已經(jīng)展開(kāi)了,才能使用(通過(guò)和Alt+鍵結(jié)合使用),
例如:
JFrame jf=new JFrame("窗口測(cè)試");
JMenuBar bar=newJMenuBar();
JMenu file=new JMenu("菜單 ");
JMenuItem createfile=new JMenuItem("創(chuàng)建文件 VK_N");
createfile.setMnemonic(KeyEvent.VK_N);
createfile.addActionListener(newActionListener() {
@Overridepublic voidactionPerformed(ActionEvent arg0) {
System.out.println("創(chuàng)建文件被點(diǎn)擊");
}
});
file.add(createfile);
bar.add(file);
jf.setJMenuBar(bar);
jf.pack();
jf.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
jf.setVisible(true);
效果圖為:
如果在上面這種圖片的效果下,摁下Ctr+N的話,控制臺(tái)是不會(huì)打印東西的,只有把鼠標(biāo)移到菜單上,看見(jiàn)“創(chuàng)建菜單”項(xiàng)后,使用Ctr+N控制臺(tái)才會(huì)打印消息。
值得注意的是?setMnemonic 并非是JMenuItem的方法,而是來(lái)著他的父類(lèi)AbstractButton的,所以該方法通常是不應(yīng)用于菜單項(xiàng)的。
JMenuItem自身有一個(gè)方法?public void setAccelerator(KeyStroke keyStroke) 該方法的功能要比上面的那個(gè)方法要強(qiáng)大,該方法可以設(shè)置菜單項(xiàng)的快捷鍵,它是不依賴(lài)菜單的分層結(jié)構(gòu)的。
例如:
JFrame jf=new JFrame("窗口測(cè)試");
JMenuBar bar=newJMenuBar();
JMenu file=new JMenu("菜單 ");
JMenuItem createfile=new JMenuItem("創(chuàng)建文件");
createfile.setAccelerator(KeyStroke.getKeyStroke('N', InputEvent.CTRL_DOWN_MASK));
createfile.addActionListener(newActionListener() {
@Overridepublic voidactionPerformed(ActionEvent arg0) {
System.out.println("創(chuàng)建文件被點(diǎn)擊");
}
});
file.add(createfile);
bar.add(file);
jf.setJMenuBar(bar);
jf.pack();
jf.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
jf.setVisible(true);
效果圖:
摁下Ctr+N鍵的話,控制臺(tái)就會(huì)打印消息了。
同時(shí)我們也可以看到,快捷鍵也被附加在文字的后面了。
創(chuàng)作挑戰(zhàn)賽新人創(chuàng)作獎(jiǎng)勵(lì)來(lái)咯,堅(jiān)持創(chuàng)作打卡瓜分現(xiàn)金大獎(jiǎng)總結(jié)
以上是生活随笔為你收集整理的java菜单如何点解_【Java】详解菜单组件的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: Mysql是如何保证原子性和持久性的总结
- 下一篇: atomic原子类实现机制_深入了解Ja