Java JMenuBar设置布局方式

2024-12-16 00:19:57
推荐回答(3个)
回答1:

import javax.swing.*;
import java.awt.event.*;
public class JMenuDemo1 extends JMenuBar {
public JMenuDemo1(){
add(createJMenuOne());

setVisible(true);

}

public static void main(String[] args) {
JFrame frame=new JFrame("JMenuDemo1");
frame.setSize(300,200);
frame.setJMenuBar(new JMenuDemo1());
frame.setVisible(true);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

}

private JMenu createJMenuOne(){
JMenu menu=new JMenu("新建");
menu.setMnemonic(KeyEvent.VK_F);
JMenuItem item=new JMenuItem("画笔");

menu.add(item);
item=new JMenuItem("橡皮");

menu.add(item);
item=new JMenuItem("划线");

menu.add(item);

return menu;
}

}

回答2:

你可以用toolbar来做
toolbar.setOrientation(0);

设置方向不是 HORIZONTAL 就是 VERTICAL

回答3:

  JMenuBar是用于制作菜单栏时用到的一个组件。将 JMenu 对象添加到菜单栏以构造菜单。当用户选择 JMenu 对象时,就会显示其关联的 JPopupMenu,允许用户选择其上的某一个 JMenuItem。
  菜单是非常重要的GUI组件,其界面提供的信息简明清晰,在用户界面中经常使用。Java
的菜单组件是由多个类组成的,主要有:JMenuBar(菜单栏)、JMenu(菜单)、JMenuItem
(菜单项)和JPopupMenu(弹出菜单)。
每个菜单组件都包含一个菜单栏,每个菜单栏又包含若干个菜单,每个菜单包含若干个
菜单项。菜单项的作用与按钮类似,当用户单击时产生一个命令动作。
Java 中的菜单分为两类:一类是下拉式菜单,通常所说的菜单就是这一类;另一类就是
弹出式菜单。下面我们国外服务器租用商就来介绍菜单的创建和使用方法。
1.创建下拉式菜单
(1)创建菜单栏JMenuBar
菜单栏组件是一个水平菜单。它只能加入到一个框架中,并成为所有菜单树的根。在一
个时刻,一个框架可以显示一个菜单栏。然而,也可以根据程序的状态修改菜单栏,这样,
在不同的时刻就可以显示不同的菜单。例如:
JFrame f=new JFrame("菜单实例"); //创建框架
JMenuBar JMB=new JMenuBar(); //创建菜单栏JMB
f.setJMenuBar(JMB); //设置JMB 为框架f的菜单栏
菜单栏不支持监听者。作为普通菜单行为的一部分,在菜单栏的区域中发生的事件和普
通组件一样会被自动处理。
(2)创建菜单,添加到菜单栏中
菜单提供了一个基本的下拉式菜单。美国服务器租用商提醒您它可以加入到一个菜单栏或者另一个菜单中,例如
(接上例):
JMenu m1=new JMenu("File"); //创建File 菜单m1
JMenu m2=new JMenu("Edit");
JMenu m3=new JMenu("Tool");
JMenu m4=new JMenu("Help");
JMB.add(m1); //把m1 添加到菜单条JMB 中
JMB.add(m2);
JMB.add(m3);
JMB.add(m4);
(3)创建菜单项,加入到菜单中
菜单项是菜单树的“叶”节点。它们通常被加入到菜单中,以构成一个完整的菜单,例
如(接上例):
JMenuItem mi1=new JMenuItem("New"); //创建new菜单项目
mi1.setActionCommand("New"); //设置菜单项mil 的命令字符串为New
JMenuItem mi2=new JMenuItem("Load");
JMenuItem mi3=new JMenuItem("Save");
JMenuItem mi4=new JMenuItem("Quit");
m1.add(mi1); //把菜单项mi1 加入到菜单m1 中
m1.add(mi2);
m1.add(mi3);
m1.add(mi4);
(4)将建成的菜单栏添加到框架等容器中
例如,前面的例子中的f.setJMenuBar(JMB);,即设置JFrame 对象f的菜单栏为JMB。
(5)香港服务器租用商提醒您将菜单项注册给动作事件的监听者ActionListener
例如:MenuListener myListener=new MenuListener( ); //创建监听对象
mi1.addActionListener(myListener); //为菜单项添加监听对象
其中MenuListener 为实现ActionListener 接口的类,在该类中重载actionPerformed 方法,
例如:
class MenuListener implements ActionListener
{ public void actionPerformed(ActionEvent e)
{ if (e.getActionCommand().equals("Quit"))
System.exit(0); //如果选择了Quit 菜单项,退出程序
}
}
(6)使用分隔线
如果希望在菜单项之间添加一条横向分隔线,以便将菜单项分成几组,则需要调用菜单
的方法addSeparator( )。例如:m1.addSeparator();。
(7)为菜单项定义访问键
除了可以单击鼠标选择菜单项外,还可以为每个菜单项定义一个键盘访问键,这样就可
以用键盘来选择菜单项了。访问键是一个字母,定义好了之后,按住Alt 键和该字母就可以
选择菜单中对应的菜单项。例如,mi1.setMnemonic(’F’);给mi1 菜单项设置了访问键F,当菜
单项在界面上可见时,可以在键盘上按下Alt 键不放,同时按F键运行对应的命令。
如果希望菜单还有子菜单,国外服务器租用商提醒您只需先建立带菜单项的菜单,再把该菜单像菜单项一样加入
到另一个菜单即可。
在Java 菜单中定义了方钮确认框选项JcheckBoxMenuItem能够选中和不选中,圆形确认
框选项JradioButtonMenuItem能选中和不选中(一个选中,其他变为不选中,具有排他性),
它们的构造方法和JMenuItem类似,只是多了一个是否选中的参数。对应地,菜单项引发的
事件是ItemEvent,这样需要利用addItemListener方法把菜单项注册给ItemListener类的对象,
并实现ItemListener 的itemStateChanged(ItemEvent e)方法。我们可以通过ItemEvent 对象的
getStateChange( )方法获取菜单项的状态(2 表示从选中到未选中,1 表示从未选中到选中)。