У меня очень простой JLabel с довольно длинным текстом.
Родительским макетом является GridBagLayout.
Я хочу, чтобы ширина содержащего кадра не превышала определенного значения, скажем, 160 пикселей.
Поэтому я установил текст как «html», чтобы JLabel мог переносить текст в несколько строк.
Теперь я просто хочу "исправить" ширину JLabel. Но я не нашел способ.
Максимальный размер Jframe, JLabel не проверяется менеджером макета, поэтому я не знаю, есть ли «простое» решение.
Очень простой пример (просто исправьте импорт для запуска) показывает ситуацию.
public class SSCE extends JFrame {
public static void main(String [] args) {
new SSCE().setVisible(true);
}
public SSCE() {
setLayout(new GridBagLayout());
GridBagConstraints gbc = new GridBagConstraints();
gbc.gridx = 0;
gbc.gridy = 0;
gbc.weightx = 1;
gbc.weighty = 1;
gbc.fill = GridBagConstraints.BOTH;
JLabel label = new JLabel("<html>one two three four five six seven eight nine ten eleven twelve thirteen");
add(label, gbc);
gbc.gridy=1;
JLabel label2 = new JLabel("other content");
add(label2, gbc);
pack();
}
}