📄 s10.htm
字号:
f.setBounds(x,y,w,h);<br> f.setVisible(true);</p> <p> statusArea.setBorder(BorderFactory.createEtchedBorder());<br> statusArea.setLayout(new FlowLayout(FlowLayout.LEFT,0,0));<br> statusArea.add(status);<br> status.setHorizontalAlignment(JLabel.LEFT);</p> <p> f.setDefaultCloseOperation(<br> WindowConstants.DISPOSE_ON_CLOSE);</p> <p> f.addWindowListener(new WindowAdapter() {<br> public void windowClosed(WindowEvent e) {<br> System.exit(0);<br> }<br> });<br> }<br> static public JPanel getStatusArea() {<br> return statusArea;<br> }<br> static public void updateStatus(String s) {<br> status.setText(s);<br> }<br> }</p> <hr size="1" noshade> <p> 10.3.2 JMenuItem属性</p> <p> </p> <p> 10.3.3 JMenuItem事件</p> <p> </p> <p align="center"><b>例10-5 监听菜单项动作和菜单项变化事件</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");<br> JMenuItem newItem = new JMenuItem("New ..."),<br> openItem = new JMenuItem("Open ..."),<br> saveItem = new JMenuItem("Save"),<br> saveAsItem = new JMenuItem("Save As ..."),<br> exitItem = new JMenuItem("Exit");<br> Listener listener = new Listener(this);</p> <p> fileMenu.add(newItem);<br> fileMenu.add(openItem);<br> fileMenu.add(saveItem);<br> fileMenu.add(saveAsItem);<br> fileMenu.addSeparator();<br> fileMenu.add(exitItem);</p> <p> newItem.setActionCommand("Create a New Document");<br> openItem.setActionCommand("Open an Existing Document");<br> saveItem.setActionCommand("Save Document");<br> saveAsItem.setActionCommand("Save Document As ...");<br> exitItem.setActionCommand("Exit the applet");</p> <p> newItem.addChangeListener(listener);<br> openItem.addChangeListener(listener);<br> saveItem.addChangeListener(listener);<br> saveAsItem.addChangeListener(listener);<br> exitItem.addChangeListener(listener);</p> <p> mb.add(fileMenu);<br> setJMenuBar(mb);</p> <p> exitItem.addActionListener(new ActionListener() {<br> public void actionPerformed(ActionEvent e) {<br> System.exit(0);<br> }<br> });<br> }<br> }<br> class Listener implements ChangeListener {<br> private JApplet applet;</p> <p> public Listener(JApplet applet) {<br> this.applet = applet;<br> }<br> public void stateChanged(ChangeEvent e) {<br> JMenuItem b = (JMenuItem)e.getSource();</p> <p> if(b.isArmed())<br> applet.showStatus(b.getActionCommand());<br> }<br> }</p> <hr size="1" noshade> <p> 10.3.4 JMenuItem类总结</p> <p> </p> <p> 10.3.5 AWT兼容</p> <p> </p> <p> 10.4 JCheckBoxMenuItem</p> <p> </p> <p align="center"><b>例10-6 实例化复选框菜单项</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> JMenuBar mb = new JMenuBar();<br> JMenu checkBoxMenu = new JMenu("Endangered Species");</p> <p> ImageIcon crabIcon = new ImageIcon("crab.gif");<br> ImageIcon eagleIcon = new ImageIcon("eagle.gif");</p> <p> JMenuItem <br> crabItem = new JCheckBoxMenuItem(crabIcon),<br> eagleItem = new JCheckBoxMenuItem("eagle", <br> eagleIcon, true),<br> ladybugItem = new JCheckBoxMenuItem("ladybug");</p> <p> checkBoxMenu.add(crabItem);<br> checkBoxMenu.add(eagleItem);<br> checkBoxMenu.add(ladybugItem);</p> <p> ladybugItem.setMnemonic('l');</p> <p> mb.add(checkBoxMenu);<br> setJMenuBar(mb);<br> }<br> }</p> <hr size="1" noshade> <p> 10.4.1 JCheckBoxMenuItem属性</p> <p> </p> <p> 10.4.2 JCheckBoxMenuItem事件</p> <p> </p> <p align="center"><b>例10-7 访问JCheckBoxMenuItem状态</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> private ImageIcon crabIcon = new ImageIcon("crab.gif");<br> private ImageIcon eagleIcon = new ImageIcon("eagle.gif");</p> <p> private JCheckBoxMenuItem <br> crabItem = new JCheckBoxMenuItem(crabIcon),<br> eagleItem = new JCheckBoxMenuItem("eagle", eagleIcon),<br> ladybugItem = new JCheckBoxMenuItem("ladybug");</p> <p> public void init() {<br> Container contentPane = getContentPane();</p> <p> JMenuBar mb = new JMenuBar();<br> JMenu checkBoxMenu = new JMenu("Endangered Species");<br> Listener listener = new Listener();</p> <p> checkBoxMenu.add(crabItem);<br> checkBoxMenu.add(eagleItem);<br> checkBoxMenu.add(ladybugItem);</p> <p> crabItem.addActionListener(listener);<br> eagleItem.addActionListener(listener);<br> ladybugItem.addActionListener(listener);</p> <p> mb.add(checkBoxMenu);<br> setJMenuBar(mb);<br> }<br> class Listener implements ActionListener {<br> public void actionPerformed(ActionEvent e) {<br> showStatus("crab: " + crabItem.getState() + ", " +<br> "eagle: " + eagleItem.getState() + ", " +<br> "ladybug: " + ladybugItem.getState());<br> }<br> }<br> }</p> <hr size="1" noshade> <p> 10.4.3 JCheckBoxMenuItem类总结</p> <p> </p> <p> 10.4.4 AWT兼容</p> <p> </p> <p> 10.5 JRadioButtonMenuItem</p> <p> </p> <p align="center"><b>例10-8 实例化单选按钮菜单项</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> Container contentPane = getContentPane();</p> <p> JMenuBar mb = new JMenuBar();<br> JMenu radioMenu = new JMenu("Favorite Animal");</p> <p> ImageIcon crabIcon = new ImageIcon("crab.gif");<br> ImageIcon eagleIcon = new ImageIcon("eagle.gif");</p> <p> final JMenuItem <br> crabItem = new JRadioButtonMenuItem(crabIcon),<br> eagleItem = new JRadioButtonMenuItem("eagle", <br> eagleIcon),<br> ladybugItem = new JRadioButtonMenuItem("ladybug");</p> <p> radioMenu.add(crabItem);<br> radioMenu.add(eagleItem);<br> radioMenu.add(ladybugItem);</p> <p> mb.add(radioMenu);<br> setJMenuBar(mb);<br> }<br> }</p> <hr size="1" noshade> <p> 10.5.1 JRadioButtonMenuItem属性</p> <p> </p> <p> 10.5.2 JRadioButtonMenuItem事件</p> <p> </p> <p align="center"><b>例10-9 为JRadioButton的实例监视事件</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> private ImageIcon crabIcon = new ImageIcon("crab.gif", <br> "Crab");<br> private ImageIcon eagleIcon = new ImageIcon("eagle.gif", <br> "Eagle");<br> private JMenuItem <br> crabItem = new JRadioButtonMenuItem(crabIcon),<br> eagleItem = new JRadioButtonMenuItem("eagle", <br> eagleIcon),<br> ladybugItem = new JRadioButtonMenuItem("ladybug");</p> <p> public void init() {<br> Container contentPane = getContentPane();</p> <p> JMenuBar mb = new JMenuBar();<br> JMenu radioMenu = new JMenu("Favorite Animal");</p> <p> AnItemListener itemListener = new AnItemListener();<br> AnActionListener actionListener = new AnActionListener();<br> AChangeListener changeListener = new AChangeListener();</p> <p> radioMenu.add(crabItem);<br> radioMenu.add(eagleItem);<br> radioMenu.add(ladybugItem);</p> <p> ButtonGroup group = new ButtonGroup();<br> group.add(crabItem);<br> group.add(eagleItem);<br> group.add(ladybugItem);</p> <p> mb.add(radioMenu);<br> setJMenuBar(mb);</p> <p> crabItem.addItemListener(itemListener);<br> eagleItem.addItemListener(itemListener);<br> ladybugItem.addItemListener(itemListener);</p> <p> crabItem.addActionListener(actionListener);<br> eagleItem.addActionListener(actionListener);<br> ladybugItem.addActionListener(actionListener);</p> <p> crabItem.addChangeListener(changeListener);<br> eagleItem.addChangeListener(changeListener);<br> ladybugItem.addChangeListener(changeListener);<br> }<br> private String getItemDescription(JMenuItem item) {<br> String s;<br> ImageIcon icon = (ImageIcon)item.getIcon();</p> <p> if(icon != null) return icon.getDescription();<br> else return item.getText();<br> }</p> <p> // Inner class event handlers follow ...</p> <p> class AnActionListener implements ActionListener {<br> public void actionPerformed(ActionEvent e) {<br> JMenuItem item = (JMenuItem) e.getSource();<br> String s = getItemDescription(item);<br> showStatus(s + " activated");</p> <p> System.out.println("action event fired");<br> }<br> };<br> class AChangeListener implements ChangeListener { <br> public void stateChanged(ChangeEvent e) {<br> Object[] selectedObjs = <br> ladybugItem.getSelectedObjects();</p> <p> if(selectedObjs == null)<br> System.out.println("selected objs is null");<br> else<br> System.out.println(selectedObjs[0] + "selected");</p> <p> JMenuItem item = (JMenuItem)e.getSource();</p> <p> if(item.isArmed()) {<br> String s = getItemDescription(item);<br> showStatus(s + " armed");<br> }<br> System.out.println("change event fired");<br> }<br> };<br> class AnItemListener implements ItemListener { <br> public void itemStateChanged(ItemEvent e) {<br> JMenuItem item = (JMenuItem) e.getSource();<br> String s = getItemDescription(item);</p> <p> if(e.getStateChange() == ItemEvent.SELECTED)<br> s += " selected";<br> else<br> s += " deselected";</p> <p> showStatus(s);<br> System.out.println("item event fired");<br>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -