我正在尝试使用Swing库在Java中设置GUI。我创建了一个自定义按钮类,它具有自定义初始化程序,使事情变得更容易。它在下面:
public class JTButton extends JButton {
char type;
public JTButton(String title, ActionListener listener, char type) {
super(title);
this.type = type;
addActionListener(listener);
setForeground(Color.BLACK);
setBackground(Color.WHITE);
setFont(new Font("Monospaced", 1, 10));
setBorderPainted(false);
if (type == 'h') {
setFont(new Font("Monospaced", 1, 24));
}
setOpaque(true);
}
public void setColor(Color t, Color b) {
setBackground(b);
setForeground(t);
}
}
但是,当我运行程序时,它会在我的按钮网格中显示缺点,如下所示。
它应该看起来像这样(这是较小的网格):
我在GetPreferredSize()
上看到了一些东西但却无法发挥作用。让我知道我能做些什么!
额外信息:在macOS中运行,网格在GridLayout中设置
答案 0 :(得分:-1)
当我运行程序时,它会在我的按钮网格中显示省略号。
省略号出现是因为按钮太小而无法显示文本。
这种情况正在发生,因为最终你没有正确使用布局管理器,正如HovercraftFullOfEels所提到的那样。解释如何正确使用布局管理器是一个非常大的答案(而不是我认为你正在寻找的),所以相反,我将为你提供一些快速的方法来摆脱椭圆。
以下是删除省略号的几种方法......
JButtons的边距非常小。您可以调整它们的大小,以便为文本显示提供额外的空间。
您可以通过调用...
在JTButton构造函数中执行此操作setMargin(new Insets(0, 0, 0, 0));
不要忘记import java.awt.Insets;
您可以查看此功能的文档here。
由于您使用的是GridLayout,因此可以通过使“网格容器”更大来使每个按钮更大。按钮将伸展以均匀填充可用空间。
根据您对Grid容器的 parent 使用的Layout Manager,将有不同的方法来调整它。深入了解这些内容超出了本答案的范围。