【发布时间】:2015-11-23 19:01:37
【问题描述】:
有没有办法“忽略”按钮的文本是否适合,如果它不适合,它不会显示“...”?
我正在制作一个包含按钮网格的游戏,并且我使用国际象棋 unicode 字符作为这些按钮上的文本。使用小字体时,它们会显示出来,但它们确实很小。但是对于较大的字体,java“认为”它们不适合并将它们显示为“...”,甚至认为它们完全适合。
生成按钮的代码:
jPanel.setLayout(new GridLayout(13, 13));
tab = new JButton[13][13]; //Tablero
for (int j = 0; j <= 12; j++) {
for (int i = 0; i <= 12; i++) {
JButton jButton = new JButton();
jButton.setText("♟");
jButton.setBackground(getColor(i, j));
jPanel.add(jButton);
tab[i][j] = jButton;
//jButton.setFont(new Font("TimesRoman", Font.PLAIN, 14));
jButton.setForeground(Color.pink);
}
}
【问题讨论】:
-
But with larger fonts, java thinks they wont fit and displays them as "..." even thought they would definitively fit.- 如果它们显示为“...”,则表示它不适合。不要对组件的首选大小进行硬编码,然后 Swing 会以首选大小绘制组件,这意味着图像将适合。 -
不要设置大小或边界,或使用
null布局。在添加所有组件之后和调用setVisible(true)之前,一定要在你的GUI上调用pack()。 -
@camickr 如果您不想硬编码它,因为没有为文本指定字体,那只会使它使用既不会显示的默认字体。这是你的意思吗?
-
我猜边距太大,请参阅stackoverflow.com/a/5808226/5596109 了解如何解决。
-
删除边框的错误解决方案。您仍在某处设置大小,并且您没有打包您的 GUI。我几乎可以保证这一点。