【发布时间】:2022-01-20 17:13:03
【问题描述】:
我在一个框架上添加了两个JMenus:
JFrame frame = new JFrame();
//Menu :
menuBar = new JMenuBar();
menu = new JMenu("Fichier");
menu2 = new JMenu("Options");
JSeparator sep = new JSeparator(SwingConstants.VERTICAL);
JButton btn = new JButton();
btn.addActionListener(MyListener);
menuBar.add(menu);
menuBar.add(sep);
menuBar.add(menu2);
frame.setJMenuBar(menuBar);
这是我想要的结果:
这是我得到的结果:
请给我关于这个框架是如何制作的任何想法:
我尝试使用JWindow 执行此操作并添加JTextArea,但它占用了整个窗口的大小,我什至无法在上面写字。
JWindow 的代码:
public class Fenetre extends JWindow
{
int X;
int Y;
JTextArea ta;
Fenetre()
{
setBounds(50, 50, 300, 300);
ta = new JTextArea();
JScrollPane scrollPane = new JScrollPane(ta);
add(ta);
addMouseListener(new MouseAdapter() {
public void mousePressed(MouseEvent e)
{
X = e.getX();
Y = e.getY();
}
});
addMouseMotionListener(new MouseMotionAdapter() {
public void mouseDragged(MouseEvent e)
{
Point p = getLocation();
setLocation(p.x + (e.getX() - X), p.y + (e.getY() - Y));
}
});
this.setVisible(true);
}
}
【问题讨论】:
-
删除分隔符
-
@MadProgrammer 确实有效,谢谢,你能帮我解决我的问题的第二部分吗?
-
我同意 MadProgrammer。垂直分隔符不是必需的。除非您使用一些
LayoutManager并将其添加到JMenuBar,否则您将有那种“奇怪”的行为。基本上,有一种方法可以做你想做的事,但付出的努力可能不值得。 -
@hfontanez 哦,我明白了,我就用 menu2 = new JMenu("Options |");,谢谢!
-
不知道为什么你个人需要
JWindow,这不是我的首选,事实上,未装饰的JFrame会是一个更好的起点