Я создал класс, который расширяет класс JLabel.Этот класс, по сути, делает более «приятным» для меня присоединение соответствующего IconImage к моему JLabel и корректный его размер.
Когда я создаю новый JLabel по коду, я теперь делаю это с помощью * 1003этот код выше, я бы имел конструктор MyClass(String msg, int type) {}
на месте.В этом конструкторе я хочу иметь возможность получить ширину текста, указанного пользователем.Если эта ширина превышает определенное значение, скажем, 300px
, тогда я бы хотел вставить разрыв строки (по сути, сделав перенос слов в JLabel в соответствии с максимальной шириной).
Я удалилчасть в коде ниже, который добавляет изображение в JLabel, потому что это не имеет отношения к вопросу - я создал отдельный класс для обработки этого, который уже работает.
package org.me.myimageapp;
import javax.swing.JLabel;
/**
*
* @author Jordan
*/
public class chatBubble extends JLabel {
public static final int BUBBLE_TO_USER = 1;
public static final int BUBBLE_FROM_USER = 2;
chatBubble(String message, int bubble_type) {
if ( (bubble_type!=1) && (bubble_type!=2) ) {
return;
}
this.setHorizontalTextPosition(javax.swing.SwingConstants.CENTER);
this.setText(message);
this.setVisible(true);
System.out.println("WIDTH: "+this.getSize().toString()); //WIDTH: java.awt.Dimension[width=0,height=0]
}
}
Когда я запускаю этот код, онвозвращает "WIDTH: java.awt.Dimension [width = 0, height = 0]", как я поместил в комментариях.
Есть ли способ получить ширину JLabel в конструкторе?Также существует ли способ для JLabel, который позволил бы мне переносить слова?