我正在创建一个带有一些 JMenu 的 JMenuBar 并在每个 JMenu 中设置边距。但是给定的 margin 在每个 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();
}
});
}
}
最佳答案
要设置边距,您可以尝试在 JMenu
中使用 html 代码,例如:
JMenu file = new JMenu("<html><p style='margin-bottom:20'>File");
您还可以将 EmptyBorder
添加到您的 JMenu
中:
file.setBorder(BorderFactory.createCompoundBorder(file.getBorder(),BorderFactory.createEmptyBorder(0, 0, 20, 0)));
关于java - 设置 JMenu 边距不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21903605/