【发布时间】:2014-02-20 09:32:04
【问题描述】:
我正在创建一个带有一些 JMenu 的 JMenuBar,并在每个 JMenu 中设置边距。但是给定的边距在每个 JMenu 中都不起作用。如何正确设置JMenu的Margin?
import javax.swing.*;
public class JMenuDemo extends JFrame {
private JMenuBar bar;
public JMenuDemo() {
super("Menu example");
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setVisible(true);
initialize();
}
private void initialize() {
bar = new JMenuBar();
int menuHeight = 40;
JMenu file = new JMenu("File");
file.setPreferredSize(new java.awt.Dimension(50, menuHeight));
file.setVerticalAlignment(javax.swing.SwingConstants.BOTTOM);
file.setMargin(new java.awt.Insets(0, 0, 20, 0));
JMenuItem newItem = new JMenuItem("New");
file.add(newItem);
JMenuItem openItem = new JMenuItem("Open");
file.add(openItem);
bar.add(file);
JMenu test = new JMenu("Test");
test.setPreferredSize(new java.awt.Dimension(60, menuHeight));
test.setVerticalAlignment(javax.swing.SwingConstants.BOTTOM);
test.setMargin(new java.awt.Insets(0, 0, 20, 0));
bar.add(test);
setJMenuBar(bar);
getContentPane();
setSize(400, 200);
}
public static void main(String[] args) {
UIManager.getCrossPlatformLookAndFeelClassName();
java.awt.EventQueue.invokeLater(new Runnable() {
@Override
public void run() {
new JMenuDemo();
}
});
}
}
【问题讨论】:
-
JMenuBas 使用 BoxLayout,阅读 Oracle 教程 ....
-
感谢您的重播@mKorbel。我的意思是如何设置JMenu的文本边距
标签: java swing jmenu jmenubar preferredsize