Java按钮大小
我知道还有一些类似的问题,但我还没有看到我的具体问题得到回答。我想在不改变外观的情况下改变JButton的大小。例如,如果使用setPreferredSize,则会丢失白色背景色和圆角。我只想移除周围的填充物,这样按钮就只比标签稍微大一点Java按钮大小,java,jbutton,Java,Jbutton,我知道还有一些类似的问题,但我还没有看到我的具体问题得到回答。我想在不改变外观的情况下改变JButton的大小。例如,如果使用setPreferredSize,则会丢失白色背景色和圆角。我只想移除周围的填充物,这样按钮就只比标签稍微大一点 JFrame.setDefaultLookAndFeelDecorated(true); JFrame jFrame = new JFrame("Label"); jFrame.setDefaultCloseOperation(Wind
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
我所拥有的是:
我使用setPreferredSize得到的是:
我想要的是:检查这个答案,简单地做
行后:
JButton jButtonUp = new JButton("Upd");
加:
然后将按钮添加到面板:
jPanel.add(jButtonUp, gbc);
检查这个答案,简单地做
行后:
JButton jButtonUp = new JButton("Upd");
加:
然后将按钮添加到面板:
jPanel.add(jButtonUp, gbc);
已用代码更新我无法重现您的错误。你能显示完整的代码吗?请做两个按钮以便比较。您使用的是什么外观和感觉,您使用的是什么操作系统和版本?这两个按钮在Windows 10和Java 8上的外观都相同。我正在了解这两方面的最新情况。抱歉,但它可能是特定于Mac的。(顺便说一句,在我的屏幕上,两个按钮的大小都一样,而且都很小。我们通常不直接设置GUI组件的大小是有原因的,这是因为每台机器的屏幕大小、像素密度和默认字体大小不同。最好根本不设置大小。)您将代码更新为完整示例,但是当我在main方法中复制代码时,创建的按钮既不是白色的,也没有圆边。是的。这就是setPreferredSize的问题。用代码更新我不能重现你的错误。你能显示完整的代码吗?请做两个按钮以便比较。您使用的是什么外观和感觉,您使用的是什么操作系统和版本?这两个按钮在Windows 10和Java 8上的外观都相同。我正在了解这两方面的最新情况。抱歉,但它可能是特定于Mac的。(顺便说一句,在我的屏幕上,两个按钮的大小都一样,而且都很小。我们通常不直接设置GUI组件的大小是有原因的,这是因为每台机器的屏幕大小、像素密度和默认字体大小不同。最好根本不设置大小。)您将代码更新为完整示例,但是当我在main方法中复制代码时,创建的按钮既不是白色的,也没有圆边。是的。这就是setPreferredSize的问题。评论一下。谢谢,但不好。这样就去掉了按钮的边框,只显示文本。另外,jButtonDn.setMargin(新的Insets(0,0,0,0))不起任何作用。您可以检查设置边距的引用。它应该适用于你的情况。不确定“参考”是什么意思。@JohnSmith,下面是参考的链接答案。不,那不行。setMargin没有像我前面说的那样工作。谢谢,但不好。这样就去掉了按钮的边框,只显示文本。另外,jButtonDn.setMargin(新的Insets(0,0,0,0))不起任何作用。您可以检查设置边距的引用。它应该适用于你的情况。不确定“参考”是什么意思。@JohnSmith,下面是参考的链接答案。不,那不行。setMargin没有像我前面说的那样工作。