【发布时间】:2017-09-20 21:23:23
【问题描述】:
我知道还有其他一些与此类似的问题,但我还没有看到我的具体问题得到解答。我想在不改变外观的情况下更改 JButton 的大小。例如,如果我使用 setPreferredSize,我会失去白色背景颜色和圆角。我只想删除周围的填充,所以按钮只比它的标签大一点。
JFrame.setDefaultLookAndFeelDecorated(true);
JFrame jFrame = new JFrame("Label");
jFrame.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
GridBagConstraints gbc = new GridBagConstraints();
gbc.gridx = 0;
gbc.gridy = 0;
gbc.insets = new Insets(10, 10, 10, 10);
JPanel jPanel = new JPanel(new GridBagLayout());
JButton jButtonUp = new JButton("Upd");
//jButtonUp.setPreferredSize(new Dimension(30, 20));
jPanel.add(jButtonUp, gbc);
gbc.gridy = 1;
JButton jButtonDn = new JButton("Del");
//jButtonDn.setPreferredSize(new Dimension(30, 20));
jPanel.add(jButtonDn, gbc);
jFrame.add(jPanel);
jFrame.pack();
jFrame.setVisible(true);
使用 Mac OSX Sierra。
【问题讨论】:
-
已更新代码
-
我无法重现您的错误。你能显示完整的代码吗?请制作两个按钮,以便比较它们。您使用什么外观和感觉,您使用的是什么操作系统和版本?
-
这两个按钮在 Windows 10 和 Java 8 上对我来说具有相同的外观。我正在使用两者的最新更新。对不起,但它似乎可能是 Mac 特定的。 (顺便说一句,两个按钮在我的屏幕上大小相同且很小。我们通常不直接设置 GUI 组件的大小是有原因的,因为每台机器的屏幕大小、像素密度和默认字体大小不同。可能是最好不要设置大小。)
-
您将代码更新为完整示例,但是当我在 main 方法中复制代码时,创建的按钮既不是白色的,也没有圆边。
-
是的。这就是 setPreferredSize 的问题。把它注释掉。