2017-10-12 92 views
0

我正在嘗試在java中使用JTextArea.setText以將某些東西放到窗口中。我想讓我的屏幕尺寸變爲textarea,但是,兩個.setText()之一沒有在屏幕上顯示任何內容。JTextArea.setText不可見

我的代碼:

public class SimpleFrame { 
    public static void main(String[] args) { 
     JFrame frame = new JFrame("Demo"); 
     Dimension d = Toolkit.getDefaultToolkit().getScreenSize(); 
     double hi = d.getHeight(); 
     double wi = d.getWidth(); 
     JTextArea area = new JTextArea(10, 10); 
     area.setEditable(false); 
     area.setText("height: " + hi); 
     area.setText("width: " + wi); 
     frame.setSize(400, 400); 
     frame.add(area); 
     frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 
     frame.setVisible(true); 
     frame.setLocationRelativeTo(null); 
    } 
} 

輸出:

width: 1920.0 

回答

4

您需要area.append("...");因爲area.setText("...");覆蓋的內容append文本。

public void append(String str): 將給定的文本追加到文檔的末尾。

public void setText(String t): 將此TextComponent的文本設置爲指定的文本。

+0

謝謝你的快速回答。有用:)。順便說一下,我想知道如何添加(附加)非字符串類型的變量。就像我想要追加(高度)沒有文字。那可能嗎? – sumu00

+0

我猜'area.append(「」+ height);'應該這樣做。否則,你可以用'Double.toString(height);'或類似的東西將'height'轉換爲String。應該有很多[這裏的示例](https://stackoverflow.com/questions/5766318/converting-double-to-string)。編輯:@ sumu00我不好,你是對的;)應該是:'String.valueOf(height);' – pzaenger

+0

是啊「」應該這樣做。 Double.ToString給出錯誤,不可能在原始類型上使用toString – sumu00