gpt4 book ai didi

java - 设置 JMenu 边距不起作用

转载 作者:行者123 更新时间:2023-11-29 07:50:01 24 4
gpt4 key购买 nike

我正在创建一个带有一些 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");

enter image description here

您还可以将 EmptyBorder 添加到您的 JMenu 中:

file.setBorder(BorderFactory.createCompoundBorder(file.getBorder(),BorderFactory.createEmptyBorder(0, 0, 20, 0)));

关于java - 设置 JMenu 边距不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21903605/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com