1.菜单条
菜单栏组件添加到 JFrame 窗口后,在窗口的内容显示区域的顶部出现。实现一个菜单栏主要涉及三种类。
1)JMenuBar
JMenuBar构造方法实现创建一个菜单条。使用JFrame类中的一个方法可以把菜单条对象添加到窗口顶端,方法如下:
public void SetJMenuBar(JMenuBar bar)
2)JMenu
JMenu类的构造方法可以创建一个菜单,如果把一个菜单当作菜单项添加到某个菜单中时,把这样的菜单称为子菜单,因此JMenu对象既可以作为一级菜单,又可以作为菜单下的子菜单。
JMenu常用方法:
JMenuItem add(JMenuItem menuItem):添加菜单项到JMenu中。
void addSeparator():添加一个菜单项间的分割线。
3)JMenuItem
JMenuItem的构造方法可以创建一个菜单项,菜单项用于添加到某一个菜单中。可以在菜单项前加上一个图标,可以用Icon类的ImageIcon类创建一个图标。如:
Icon icon=new ImageIcon(“save.png”);
再用菜单项对象调用setIcon(Icon icon)方法设置菜单项前的图标。
JMenuItem常用方法:
JMenuItem(String text):创建带文本的菜单项。
JMenuItem(Icon icon):创建带图标的菜单项。
JMenuItem(String text, Icon icon):创建文本及图标的菜单项。
void setText(String text):设置菜单显示的文本。
void setIcon(Icon defaultIcon):设置菜单显示的图标。
void setMnemonic(int mnemonic):设置菜单的键盘助记符。
void setAccelerator(KeyStroke keyStroke):设置键盘快捷键直接触发菜单项的动作。
4)JCheckBoxMenuItem
JCheckBoxMenuItem的构造方法可以创建一个带复选框的菜单项。
5)JRadioButtonMenuItem
JRadioButtonMenuItem的构造方法可以创建一个带单选按钮的菜单项。
JCheckBoxMenuItem、JRadioButtonMenuItem 常用方法:(www.daowen.com)
void setSelected(boolean b):设置复选框/单选按钮是否选中。
boolean isSelected():判断复选框/单选按钮是否选中。
2.工具条
工具条是用于显示位图式按钮行的控制条,通常把常用操作放置在工具条中以方便用户操作。JToolBar用于定义工具条,是容器组件,可在其内添加基本组件如按钮等。JToolBar对象可以被用户拖到其父容器上下左右四边中的一边,并支持在单独的窗口中浮动显示。
JToolBar对象常用方法:
JToolBar():创建一个无标题的工具条。
JToolBar(String name):创建一个带标题的工具条,悬浮显示时可见工具栏的标题。
JToolBar(intorientation):创建一个水平或垂直方向显示的工具条,orientation的值为SwingConstants.HORIZONTAL或SwingConstants.VERTICAL,默认为SwingConstants.HORIZONTAL。
JToolBar(String name, int orientation):创建一个标题为name的工具条,工具栏的方向由orientation的值决定。
Component add(Component comp):添加组件到工具栏。
void addSeparator():添加分隔符组件到工具栏。
Component getComponentAtIndex(int index):获取工具栏中指定位置的组件(包括分隔符)。
void setFloatable(boolean b):设置工具栏是否可拖动。
Void setOrientation(int o):设置工具栏方向,值为wingConstants.HORIZONTAL或Swing Constants.VERTICAL。
void setMargin(Insets m):设置工具栏边缘和其内部工具组件之间的边距(内边距)。
void setBorderPainted(boolean b):是否需要绘制边框。
【例8.2】 在主类Exampe8_2中用JFrame的子类MenuToolWindow创建一个带菜单及工具条的窗口,效果如图8.3所示。
图8.3 带菜单工具栏的窗口
Example8_2.java
MenuToolWindow.java
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。