2014-10-30 92 views
1

我希望我不會錯過一些重複的問題,我覺得這應該是微不足道的!Swing JTextArea:在自動換行後調整對話框的大小

無論如何,我有一個JTextArea在它的文字,與自動線包裝:

public PleaseResize(){ 
    super(); 
    Container cp = this.getContentPane(); 

    JTextArea area = new JTextArea(); 
    area.setColumns(20); 
    area.setLineWrap(true); 
    area.setEditable(false); 
    area.setWrapStyleWord(true); 
    area.setText("Once upon a midnight dreary, while I pondered, weak and weary, over many a quaint an curious volume of forgotten lore."); 
    cp.add(area, BorderLayout.CENTER); 

    cp.add(new JButton("Hallo"), BorderLayout.SOUTH); 
    this.pack(); 
} 

我想要的文字區域調整垂直於顯示整個文本......但事實並非如此。如果我通過推入\n來選擇換行符,它會很高興地調整大小,但是使用自動換行功能時,它只是保持其大小。

我莫名其妙地覺得我失去了一些東西完全明顯...

編輯:澄清:

在創建時,我不知道該文本將有多少行有(因到自動換行發生)。我通過XML文件接收文本,並且在包裝後它可以在0到大約30行之間變化。我有垂直空間可以顯示所有內容,但我不想滾動或在沒有或僅顯示一小段文字的情況下顯示巨大的白色區域。


編輯2:

改寫的問題,他們關鍵我面臨顯然沒有調整的JTextArea中的問題,而是要確保之後的對話框知道它有多大!

所以,這裏是鏈接回我結束了使用的解決方案:An automatic resizing Text above a button?

回答

2

您需要JScrollPaneJTeatArea像未來new JScrollPane(area);,然後添加JScrollPaneJFrame

另外,您還創建了帶空構造函數的JTextArea,使用JTextArea(int rows, int cols)指定行和列的計數。

+0

我可能會在這裏丟失一些信息,但滾動窗格使區域可以滾動,它不會調整任何大小。 – Layna 2014-10-30 10:53:36

+0

但是在創作上,我還不知道線條的數量......它隨着情況而變化。 *去編輯她的問題* – Layna 2014-10-30 10:55:45