Java JLabel宽度与文本长度无关

Java JLabel宽度与文本长度无关,java,text,jpanel,long-integer,jlabel,Java,Text,Jpanel,Long Integer,Jlabel,我有一个JLabel在一个水平可重定尺寸的JPanel中。JLabel自动调整其宽度以适合JPanel。如果插入一长行文本(例如“aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa。相反,宽度会重新调整大小以适应文本,这也会导致J

我有一个JLabel在一个水平可重定尺寸的JPanel中。JLabel自动调整其宽度以适合JPanel。如果插入一长行文本(例如“aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa。相反,宽度会重新调整大小以适应文本,这也会导致JPanel的重新调整非常糟糕。


相反,我希望我的文本被省略(…)截断。JLabel宽度不能从文本长度继承,只能从JPanel宽度继承。

使用不同的布局或在JLabel上设置最大大小。

尝试以下操作:

final JLabel label = ...
...
label.setText("prototype text to define size");
final Dimension size = label.getPreferredSize();
label.setMinimumSize(size);
label.setPreferredSize(size);
...
label.setText(...);

定义最大和首选大小时,需要禁用“水平可调整大小”

包含JPanel的布局是什么?如果只是默认的FlowLayout,考虑一下其他布局,比如BoDeLayDayor,或者Box布局。我使用GoLoopPoLoT,我不认为这是布局问题,你确定100%吗?我不同意,因为根据我的经验,这是关键问题。你是否很了解GroupLayout以及其他版面经理,因为这些知识基本上是为了能够打这个电话。我支持jzd关于发布SSCCE的建议。你可以在这里读到:我试图创建一个SSCCE,但它非常复杂。。。这是一个复杂的项目:(这个问题的视频有用吗?我需要这个布局(GroupLayout),我不想在jlabel上设置一个最大尺寸,因为我希望他的宽度与jpanel相同(jpanel可以调整大小)。在这种情况下,你能发布SSCE吗?