我有一个文本大于宽度大小的 JLabel,所以文本显示如下:
我想要的是文本显示如下:
我不能改变标签的大小宽度是必要的,我把它放在这里是行:
Cuadros[5].setText("Auto Incremet");
Cuadros[5].setSize(ImgA(Cuadros[5]), ImgL(Cuadros[5]));
感谢您的建议,我希望能理解我的想法:D
这篇文章没有关闭,所以我希望发布一个答案是可以的。无论如何,我相信一个解决方案可以嵌套你JLabel
自己的JPanel
,只要它的布局不是需要标签适应所有方面的硬边界,BorderLayout
或者GridLayout
会。
这是有问题的示例:
这是演示示例的 SSCCE:
import javax.swing.*;
import java.awt.*;
public class TruncationTest1
{
public static void main(String[] args)
{
JFrame f = new JFrame("Truncation Test");
JPanel panel = new JPanel(); //Default layout, AKA FlowLayout
JLabel label = new JLabel("Try resizing the frame: This will not be truncated for some reason.");
JLabel label2 = new JLabel("However, this JLabel, on the other hand, will become truncated.");
f.setSize((int)label.getPreferredSize().getWidth() + 40,65);
f.setLayout(new GridLayout(2,1));
f.setLocationRelativeTo(null);
f.setBackground(Color.BLACK);
f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
f.add(panel);
panel.setBackground(Color.WHITE);
panel.add(label);
f.add(label2);
label2.setHorizontalAlignment(JLabel.CENTER);
label2.setForeground(Color.WHITE);
f.setVisible(true);
}
}
尝试跟随,
final JLabel label = ...
...
label.setText("prototype text to define size");
final Dimension size = label.getPreferredSize();
label.setMinimumSize(size);
label.setPreferredSize(size);
...
label.setText(...);