我有一個很長的文本非常簡單的JLabel。
父佈局是一個GridBagLayout。
我想包含幀的寬度不超過某個值,比如160像素。
所以我將文本設置爲「html」,以便JLabel能夠將文本包裝成多行。
現在我只想「修復」JLabel寬度。但我還沒有找到辦法。
Jframe的最大尺寸,JLabel沒有被佈局管理器檢查,所以我不知道是否有一個「普通」的解決方案。
一個非常簡單的例子(只是修復導入運行)顯示的情況。JLabel進入GridBagLayout。如何修復寬度?
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();
}
}
@AndrewThompson:咦?這只是一些任意數字,關鍵是你可以用這種方式指定寬度。事實上,你是向我展示[在這裏]的人(http://stackoverflow.com/questions/4083322/how-can-i-create-a-jtextarea-with-a-specified-width-and-the -smallest-possible-he/4093402#4093402):) –
@AndrewThompson:Ha:D。我看到你的編輯,我不知道像素是默認的。我敢打賭,相對大小('150%')在這裏不起作用,因爲沒有父HTML組件,對吧? –
*「..對嗎?」*您的JRE與我的一樣好。當你嘗試時發生了什麼? –