0
我在JPanel中有一個JTextArea。 JPanel具有空佈局或使用絕對佈局。 JTextArea具有固定的寬度。我如何設置JTextArea高度以適應其內容?Java - 如何設置JTextArea高度以適應其內容?
我有這樣的代碼:
*some random string of varying length*
String str = "kdafkakopwepopkkdafkakopwepopkkdafkakopwepopkkdafkakopwepopkkdafkakopwepopkkda"
+ "kdafkakopwepopkkdafkakopwepopkkdafkakopwepopkkdafkakopwepopkkdafkakopwepopkkda"
+ "kdafkakopwepopkkdafkakopwepopkkdafkakopwepopkkdafkakopwepopkkdafkakopwepopkkda"
+ "kdafkakopwepopkkdafkakopwepopkkdafkakopwepopkkdafkakopwepopkkdafkakopwepopkkda"
+ "kdafkakopwepopkkdafkakopwepopkkdafkakopwepopkkdafkakopwepopkkdafkakopwepopkkda"
+ "kdafkakopwepopkkdafkakopwepopkkdafkakopwepopkkdafkakopwepopkkdafkakopwepopkkda";
JTextArea wtd = new JTextArea(str);
wtd.setLineWrap(true);
wtd.setOpaque(false);
wtd.setEditable(false);
wtd.setBorder(new EtchedBorder(EtchedBorder.LOWERED));
wtd.setLocation(*defined x position*, *defined y position*);
wtd.setPreferredSize(new Dimension(*fixed width*, *the height depending on the content*));
wtd.setSize(wtd.getPreferredSize());
add(wtd);
在此先感謝您的幫助!
感謝您的回答! 我使用空佈局,因爲我正在做某種相對佈局(如在Android中)。如果有一個類似於相對佈局的佈局,它是什麼佈局? 另外,我如何知道我放入的字符串的行數?我在JTextArea中放置的字符串可能會有所不同,它並不固定在一定數量的字符上。 – esfox
@cLix:我對相對佈局不熟悉,但始終考慮嵌套JPanel,每個JPanel都有自己的佈局,以允許簡單地創建複雜的GUI。同時查看第三方佈局,如MigLayout。 –
嵌套JPanels似乎是一個好主意。我會嘗試尋找一種適合我想做的佈局。順便說一句,我談論的相對佈局是一個佈局,其中組件的位置將基於其他組件的位置。例如,如果我想要一個JButton在JLabel下,我將獲取JLabel的y位置和高度,然後添加它們(或添加一個已定義的間隙),並將其設置爲y的位置JButton。這是這樣的。 – esfox