📄 s10.htm
字号:
}<br> };<br> }</p> <hr size="1" noshade> <p> 10.5.3 JRadioButtonMenuItem类总结</p> <p> </p> <p> 10.5.4 AWT兼容</p> <p> </p> <p> 10.6 JMenu</p> <p> </p> <p align="center"><b>例10-10 JMenu的一个简单例子</b></p> <hr noshade size="1"> <hr size="1" noshade> <p> 10.6.1 动态修改菜单</p> <p> </p> <p align="center"><b>例10-11 一个自修改菜单</b></p> <hr noshade size="1"> import javax.swing.*;<br> import java.awt.*;<br> import java.awt.event.*;<br> import java.util.Vector; <p>public class Test extends JApplet {<br> private SelfModifyingMenu selfModifyingMenu;</p> <p> public void init() {<br> JMenuBar menuBar = new JMenuBar();<br> createMenus(menuBar);<br> setJMenuBar(menuBar);<br> }<br> public void createMenus(JMenuBar mbar) {<br> mbar.add(createFileMenu());<br> mbar.add(selfModifyingMenu = new SelfModifyingMenu());<br> }<br> private JMenu createFileMenu() {<br> JMenu fileMenu = new JMenu("File"); <br> JMenuItem quitItem = new JMenuItem("Quit");</p> <p> fileMenu.add(quitItem);</p> <p> quitItem.addActionListener(new ActionListener() {<br> public void actionPerformed(ActionEvent event) {<br> System.exit(0);<br> }<br> });<br> return fileMenu;<br> }<br> }<br> class SelfModifyingMenu extends JMenu {<br> private Vector newItems = new Vector();<br> private Listener menuItemListener = new Listener();<br> private JMenuItem toggleItem, enablerItem, <br> addItem, removeItem;</p> <p> public SelfModifyingMenu() {<br> super("Self Modifying Menu");</p> <p> add(enablerItem = new JMenuItem("Disable Item Below"));<br> add(toggleItem = new JMenuItem("Enable/Disable Me"));<br> addSeparator();</p> <p> add(addItem = new JMenuItem("Add a JMenuItem ..."));<br> add(removeItem = new JMenuItem(<br> "Remove last JMenuItem ..."));<br> addItem.setFont(new Font("Helvetica", Font.BOLD, 18));<br> addSeparator();</p> <p> enablerItem.addActionListener(menuItemListener);<br> toggleItem.addActionListener(menuItemListener);<br> addItem.addActionListener(menuItemListener);<br> removeItem.addActionListener(menuItemListener);<br> }<br> public void addItem() {<br> JMenuItem newItem = <br> new JMenuItem("Extra Item #" + newItems.size());<br> <br> add(newItem);<br> newItems.addElement(newItem);<br> }<br> public void removeLastItem() {<br> if(newItems.size() == 0)<br> System.out.println("Nothing to remove!");<br> else {<br> JMenuItem removeMe = <br> (JMenuItem)newItems.lastElement();</p> <p> remove(removeMe);<br> newItems.removeElement(removeMe);<br> }<br> }<br> public void toggleItem() {<br> if(toggleItem.isEnabled()) toggleItem.setEnabled(false);<br> else toggleItem.setEnabled(true);<br> }<br> class Listener implements ActionListener {<br> public void actionPerformed(ActionEvent event) {<br> JMenuItem item = (JMenuItem)event.getSource();</p> <p> if(item == enablerItem) {<br> toggleItem();</p> <p> if(toggleItem.isEnabled()) <br> enablerItem.setText("Disable Item Below");<br> else<br> enablerItem.setText("Enable Item Below");<br> }<br> else if(item == addItem) addItem();<br> else if(item == removeItem) removeLastItem();<br> }<br> }<br> }</p> <hr size="1" noshade> <p> 10.6.2 右拉式菜单</p> <p> </p> <p align="center"><b>例10-12 右拉式菜单</b></p> <hr noshade size="1"> import javax.swing.*;<br> import java.awt.*;<br> import java.awt.event.*; <p>public class Test extends JApplet {</p> <p> public void init() {<br> JMenuBar menuBar = new JMenuBar();<br> createMenus(menuBar);<br> setJMenuBar(menuBar);<br> }<br> public void createMenus(JMenuBar mbar) {<br> mbar.add(createFileMenu());<br> mbar.add(createCascadingMenu());<br> }<br> private JMenu createFileMenu() {<br> JMenu fileMenu = new JMenu("File"); <br> JMenuItem quitItem = new JMenuItem("Quit");</p> <p> fileMenu.add(quitItem);</p> <p> quitItem.addActionListener(new ActionListener() {<br> public void actionPerformed(ActionEvent event) {<br> System.exit(0);<br> }<br> });<br> return fileMenu;<br> }<br> private JMenu createCascadingMenu() {<br> JMenu cascading = new JMenu("Cascading", true);<br> JMenu submenu = new JMenu("pull right menu 1", true);<br> JMenu subsubmenu = new JMenu("pull right menu 2", true);</p> <p> submenu.add("submenu item 1");<br> submenu.add("submenu item 2");<br> submenu.add("submenu item 3");<br> submenu.add("submenu item 4");<br> submenu.add("submenu item 5");</p> <p> subsubmenu.add("subsubmenu item 1");<br> subsubmenu.add("subsubmenu item 2");<br> subsubmenu.add("subsubmenu item 3");<br> subsubmenu.add("subsubmenu item 4");<br> subsubmenu.add("subsubmenu item 5");</p> <p> submenu.add(subsubmenu);<br> cascading.add(submenu);</p> <p> return cascading;<br> }<br> }</p> <hr size="1" noshade> <p> 10.6.3 JMenu属性</p> <p> </p> <p> 10.6.4 JMenu事件</p> <p> </p> <p align="center"><b>例10-13 监听菜单事件</b></p> <hr noshade size="1"> import javax.swing.*;<br> import javax.swing.event.*;<br> import java.awt.*;<br> import java.awt.event.*; <p>public class Test extends JApplet {<br> public void init() {<br> JMenuBar mb = new JMenuBar();<br> JMenu fileMenu = new JMenu("File");</p> <p> fileMenu.add("New ...");<br> fileMenu.add("Open ...");<br> fileMenu.add("Save");<br> fileMenu.add("Save As ..");<br> fileMenu.addSeparator();<br> fileMenu.add("Exit");</p> <p> mb.add(fileMenu);<br> setJMenuBar(mb);</p> <p> fileMenu.addMenuListener(new MenuListener() {<br> public void menuCanceled(MenuEvent e) {<br> System.out.println("menu canceled");<br> }<br> public void menuSelected(MenuEvent e) {<br> System.out.println("menu selected");<br> }<br> public void menuDeselected(MenuEvent e) {<br> System.out.println("menu deselected");<br> }<br> });<br> }<br> }</p> <hr size="1" noshade> <p align="center"> </p> <p> 10.6.5 JMenu类总结</p> <p> </p> <p align="center"><b>例10-14 显示一个菜单条中菜单的信息</b></p> <hr noshade size="1"> import javax.swing.*;<br> import java.awt.*;<br> import java.awt.event.*; <p>public class Test extends JApplet {<br> public void init() {<br> Container contentPane = getContentPane();</p> <p> final JMenuBar mb = new JMenuBar();<br> final MenuBarPrinter printer = new MenuBarPrinter();</p> <p> JMenu fileMenu = new JMenu("File");<br> JMenu editMenu = new JMenu("Edit");<br> JMenuItem exitItem = new JMenuItem("Exit");</p> <p> fileMenu.setMnemonic('F');<br> editMenu.setMnemonic('F');</p> <p> fileMenu.add("New ...");<br> fileMenu.add("Open ...");<br> fileMenu.add("Save");<br> fileMenu.add("Save As ..");<br> fileMenu.addSeparator();<br> fileMenu.add(exitItem);</p> <p> editMenu.add("Cut");<br> editMenu.add("Copy");<br> editMenu.add("Paste");</p> <p> mb.add(fileMenu);<br> mb.add(editMenu);<br> setJMenuBar(mb);</p> <p> JButton button = new JButton("show menu information");<br> contentPane.setLayout(new FlowLayout());<br> contentPane.add(button);</p> <p> button.addActionListener(new ActionListener() {<br> public void actionPerformed(ActionEvent e) {<br> printer.print(mb);<br> }<br> });</p> <p> exitItem.addActionListener(new ActionListener() {<br> public void actionPerformed(ActionEvent e) {<br> System.exit(0);<br> }<br> });<br> }<br> }<br> class MenuBarPrinter {<br> static public void print(JMenuBar menubar) {<br> int numMenus = menubar.getMenuCount();<br> JMenu nextMenu;<br> <br> JMenuItem nextItem;</p> <p> System.out.println();<br> System.out.println("MenuBar has " + <br> menubar.getMenuCount() + <br> " menus");<br> System.out.println();</p> <p> for(int i=0; i < numMenus; ++i) {<br> nextMenu = menubar.getMenu(i);<br> System.out.println(nextMenu.getText() + " menu ...");<br> System.out.println(nextMenu);</p> <p> int numItems = nextMenu.getItemCount();</p> <p> for(int j=0; j < numItems; ++j) {<br> nextItem = nextMenu.getItem(j);<br> System.out.println(nextItem);<br> }<br> System.out.println();<br> }<br> }<br> }</p> <hr size="1" noshade> <p> 10.6.6 AWT兼容</p> <p> </p> <p> 10.7 菜单元素</p> <p> </p> <p align="center"><b>例10-15 实现定制菜单元素</b></p> <hr noshade size="1"> import javax.swing.*;<br> import java.awt.*;<br> import java.awt.event.*;<br> import java.util.*; <p>public class Test extends JApplet {<br> public void init() {<br> Container contentPane = getContentPane();<br> JMenuBar menuBar = new JMenuBar();<br> JMenu fileMenu = new JMenu("File");</p> <p> fileMenu.add(new UnderlineElement("item one"));<br> fileMenu.add(new UnderlineElement("item two"));<br> fileMenu.add(new UnderlineElement("item three"));</p>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -