⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 s10.htm

📁 java图形设计卷2 swing
💻 HTM
📖 第 1 页 / 共 5 页
字号:
<SCRIPT LANGUAGE="JavaScript" SRC="/-fs0/sys/pop-up.js"></SCRIPT><SCRIPT LANGUAGE="JavaScript" SRC="/-fs0/sys/pop-up-all.js"></SCRIPT><html><head><title>易都网--Java 2 图形设计卷Ⅱ:SWING</title><LINK rel="stylesheet" href="../../../_public/javaa.css"><meta http-equiv="Content-Type" content="text/html; charset=GBK"><script language="JavaScript" src="../../../_public/javaa.js"></script><meta name="keywords" content="Java,JSP,ASP,PHP,J2EE,EJB,JavaScript,C/C++,ASM,CSS,HTML,XML,网络安全,MySQL,ACCESS"></head><body bgcolor="#FFFFFF"><table border=0 cellpadding=0 cellspacing=0 width="100%">  <tbody>   <script language="javascript">print2()</script>  <tr>     <td width="100%">       <table bgcolor=#EEEEEE border=0 cellpadding=3 cellspacing=0 width="100%">        <tbody>         <tr>           <td class=f1 id=thetd width="100%">             <p>[<a href="index.html" target="_self">目录</a>][<a href="s09.htm">上一页</a>][<a href="s11.htm">下一页</a>]</p>            <p align="center"><b>第10章 菜单和工具条</b></p>            <p>   菜单和工具条是现代用户界面的重要组成部分。Swing提供了对这两者的完全支持。Swing提供菜单组件(即菜单条中的菜单和弹出式菜单中的菜单)和菜单项组件(包括复选框和单选按钮菜单项)。<br>                Swing还提供一个工具条组件,根据工具条的方向,工具条组件包含一行按钮或一列按钮。工具条通常提供对普通特性的简单访问。通常,除键盘捷径键提供对相同功能的访问外,菜单栏和工具条不提供对相同功能集的访问。工具条还可以是悬浮的,这样,可以把工具条在窗口中任意拖动或拖到一个单独的窗口中。<br>                Swing菜单和菜单项是按钮,因为JMenuItem扩展AbstractButton,JMenu扩展JMenuItem,如图10-1所示。因此,Swing菜单和菜单项继承了如下功能,即包含文本和(或)图标、显示光标进入时的图标和助记符等。<br>                图10-1示出了JMenuItem和JMenu的父组件,它们最后都归于java.awt.Container,以强调菜单和菜单项都是容器。可以把任何类型的组件(从包含一个动画GIF的标签到JTree的一个实例)添加到一个菜单或菜单项中。<br>                菜单和菜单项还实现MenuElement接口,以便参与菜单事件的处理。MenuElement接口在10.7节“菜单元素”中介绍。<br>                工具条和弹出式菜单都扩展JComponent类,即任意组件都可以添加到一个工具条或弹出式菜单中。<br>                本章将介绍下面的组件:<br>                ·JMenuItem<br>                ·JCheckBoxMenuItem<br>                ·JRadioButtonMenuItem<br>                ·JMenu<br>                ·JPopupMenu<br>                ·JMenuBar<br>                ·JToolBar<br>            </p>            <p> <b>10.1 菜单、菜单栏和工具条</b></p>            <p>&nbsp;</p>            <p align="center"><b>例10-1 JRootPane中的菜单栏和工具条</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>              Icon <br>              dukeStanding = new ImageIcon(&quot;duke_standing.gif&quot;),<br>              dukeWaving = new ImageIcon(&quot;duke_waving.gif&quot;),<br>              dukeStandingSmall = <br>              new ImageIcon(&quot;duke_standing_small.gif&quot;),<br>              dukeWavingSmall = new ImageIcon(&quot;duke_waving_small.gif&quot;);</p>            <p> public void init() {<br>              Container contentPane = getContentPane();<br>              Action[] actions = {<br>              new NewAction(),<br>              new OpenAction(),<br>              new CutAction(),<br>              new CopyAction(),<br>              new PasteAction(),<br>              new ExitAction()<br>              };<br>              JToolBar toolbar = new JToolBar();<br>              JMenuBar menubar = new JMenuBar();<br>              JMenu fileMenu = new JMenu(&quot;File&quot;);</p>            <p> JRadioButton <br>              menubarDuke = new JRadioButton(dukeStandingSmall),<br>              menuDuke = new JRadioButton(dukeStandingSmall),<br>              toolbarDuke = new JRadioButton(dukeStanding);<br>              <br>              menuDuke.setRolloverIcon(dukeWavingSmall);<br>              menubarDuke.setRolloverIcon(dukeWavingSmall);<br>              toolbarDuke.setRolloverIcon(dukeWaving);</p>            <p> menubar.add(menubarDuke);<br>              toolbar.add(toolbarDuke);<br>              fileMenu.add(menuDuke);</p>            <p> for(int i=0; i &lt; actions.length; ++i) {<br>              fileMenu.add(actions[i]);</p>            <p> if(i != actions.length-1)<br>              toolbar.add(actions[i]);</p>            <p> if(i == 2 || i == actions.length-2){<br>              toolbar.addSeparator();<br>              fileMenu.addSeparator();<br>              }<br>              }<br>              menubar.add(fileMenu);</p>            <p> contentPane.add(toolbar, BorderLayout.NORTH);<br>              getRootPane().setJMenuBar(menubar);<br>              System.out.println(contentPane.getClass().getName());<br>              LayoutManager lm = contentPane.getLayout();<br>              System.out.println(lm.getClass());</p>            <p> }<br>              class NewAction extends AbstractAction {<br>              public NewAction() {<br>              super(&quot;New ...&quot;, new ImageIcon(&quot;new.gif&quot;));<br>              }<br>              public void actionPerformed(ActionEvent event) {<br>              showStatus(&quot;new&quot;);<br>              }<br>              }<br>              class OpenAction extends AbstractAction {<br>              public OpenAction() {<br>              super(&quot;Open ...&quot;, new ImageIcon(&quot;open.gif&quot;));<br>              }<br>              public void actionPerformed(ActionEvent event) {<br>              showStatus(&quot;open&quot;);<br>              }<br>              }<br>              class CutAction extends AbstractAction {<br>              public CutAction() {<br>              super(&quot;Cut&quot;, new ImageIcon(&quot;cut.gif&quot;));<br>              }<br>              public void actionPerformed(ActionEvent event) {<br>              showStatus(&quot;cut&quot;);<br>              }<br>              }<br>              class CopyAction extends AbstractAction {<br>              public CopyAction() {<br>              super(&quot;Copy&quot;, new ImageIcon(&quot;copy.gif&quot;));<br>              }<br>              public void actionPerformed(ActionEvent event) {<br>              showStatus(&quot;copy&quot;);<br>              }<br>              }<br>              class PasteAction extends AbstractAction {<br>              public PasteAction() {<br>              super(&quot;Paste&quot;, new ImageIcon(&quot;paste.gif&quot;));<br>              }<br>              public void actionPerformed(ActionEvent event) {<br>              showStatus(&quot;paste&quot;);<br>              }<br>              }<br>              class ExitAction extends AbstractAction {<br>              public ExitAction() {<br>              super(&quot;Exit&quot;);<br>              putValue(Action.SMALL_ICON, dukeWavingSmall);<br>              }<br>              public void actionPerformed(ActionEvent event) {<br>              System.exit(0);<br>              }<br>              }<br>              }</p>            <hr size="1" noshade>            <p> <b>10.2 菜单和弹出式菜单</b></p>            <p>&nbsp;</p>            <p align="center"><b>例10-2 一个简单的菜单举例</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>              JMenuBar mb = new JMenuBar();<br>              JMenu fileMenu = new JMenu(&quot;File&quot;);<br>              JMenu pullRightMenu = new JMenu(&quot;pull right&quot;);</p>            <p> fileMenu.add(&quot;New ...&quot;);<br>              fileMenu.add(&quot;Open ...&quot;);<br>              fileMenu.add(&quot;Save&quot;);<br>              fileMenu.add(&quot;Save As ..&quot;);<br>              fileMenu.addSeparator();<br>              fileMenu.add(pullRightMenu);<br>              fileMenu.add(&quot;Exit&quot;);</p>            <p> pullRightMenu.add(new JCheckBoxMenuItem(&quot;Bush&quot;));<br>              pullRightMenu.add(new JCheckBoxMenuItem(&quot;Tonic&quot;));<br>              pullRightMenu.add(new JCheckBoxMenuItem(&quot;Radio Head&quot;));<br>              pullRightMenu.add(new JCheckBoxMenuItem(&quot;Marcy Playground&quot;));<br>              pullRightMenu.add(new JCheckBoxMenuItem(&quot;Silver Chair&quot;));</p>            <p> mb.add(fileMenu);<br>              setJMenuBar(mb);<br>              }<br>              }</p>            <hr size="1" noshade>            <p> <b>10.3 JMenuItem</b></p>            <p>&nbsp;</p>            <p align="center"><b>例10-3 安装一些菜单项</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();<br>              Icon newIcon = new ImageIcon(&quot;new.gif&quot;, <br>              &quot;Create a new document&quot;);<br>              Icon openIcon = new ImageIcon(&quot;open.gif&quot;,<br>              &quot;Open an existing document&quot;);</p>            <p> JMenuBar mb = new JMenuBar();<br>              JMenu fileMenu = new JMenu(&quot;File&quot;);</p>            <p> JMenuItem newItem = new JMenuItem(newIcon);<br>              JMenuItem openItem = new JMenuItem(&quot;Open ...&quot;, openIcon);<br>              JMenuItem saveItem = new JMenuItem(&quot;Save&quot;);<br>              JMenuItem saveAsItem = new JMenuItem(&quot;Save As ...&quot;);<br>              JMenuItem exitItem = new JMenuItem(&quot;Exit&quot;, 'x');</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> MenuItemListener listener = new MenuItemListener(this);</p>            <p> newItem.addActionListener(listener);<br>              openItem.addActionListener(listener);<br>              saveItem.addActionListener(listener);<br>              saveAsItem.addActionListener(listener);</p>            <p> exitItem.addActionListener(new ActionListener() {<br>              public void actionPerformed(ActionEvent e) {<br>              System.exit(0);<br>              }<br>              });</p>            <p> mb.add(fileMenu);<br>              setJMenuBar(mb);<br>              }<br>              }<br>              class MenuItemListener implements ActionListener {<br>              private JApplet applet;</p>            <p> public MenuItemListener(JApplet applet) {<br>              this.applet = applet;<br>              }<br>              public void actionPerformed(ActionEvent e) {<br>              JMenuItem item = (JMenuItem)e.getSource();<br>              ImageIcon icon = (ImageIcon)item.getIcon();</p>            <p> if(icon != null)<br>              System.out.println(icon.getDescription());<br>              else<br>              System.out.println(item.getText());<br>              }<br>              }</p>            <hr size="1" noshade>            <p> <b>10.3.1 菜单项快捷键助记符键</b></p>            <p>&nbsp;</p>            <p align="center"><b>例10-4 带助记符键和快捷键的菜单项</b></p>            <hr noshade size="1">            import javax.swing.*;<br>            import java.awt.*;<br>            import java.awt.event.*;            <p>public class Test extends JFrame {<br>              public Test() { <br>              Container contentPane = getContentPane();</p>            <p> JMenuBar mb = new JMenuBar();<br>              JMenu fileMenu = new JMenu(&quot;File&quot;);<br>              JMenuItem exitItem = new JMenuItem(&quot;Exit&quot;);</p>            <p> fileMenu.add(&quot;New ...&quot;);<br>              fileMenu.add(&quot;Open ...&quot;);<br>              fileMenu.add(&quot;Save&quot;);<br>              fileMenu.add(&quot;Save As ..&quot;);<br>              fileMenu.addSeparator();<br>              fileMenu.add(exitItem);</p>            <p> exitItem.addActionListener(new ActionListener() {<br>              public void actionPerformed(ActionEvent e) {<br>              System.exit(0);<br>              }<br>              });</p>            <p> KeyStroke ks = KeyStroke.getKeyStroke(KeyEvent.VK_X, <br>              Event.ALT_MASK);<br>              exitItem.setAccelerator(ks);</p>            <p> fileMenu.setMnemonic('F');<br>              exitItem.setMnemonic(KeyEvent.VK_X);</p>            <p> mb.add(fileMenu);<br>              setJMenuBar(mb);<br>              }<br>              public static void main(String args[]) {<br>              GJApp.launch(new Test(), <br>              &quot;Accelerators and Mnemonics&quot;,300,300,450,300);<br>              }<br>              }<br>              class GJApp extends WindowAdapter {<br>              static private JPanel statusArea = new JPanel();<br>              static private JLabel status = new JLabel(&quot; &quot;);</p>            <p> public static void launch(final JFrame f, String title,<br>              final int x, final int y, <br>              final int w, int h) {<br>              f.setTitle(title);<br>

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -