2017-10-12 5 views
0

Ich versuche JTextArea.setText in Java zu verwenden, um mir etwas bis zum Fenster zu stellen. Ich wollte meine Bildschirmgröße in textarea bekommen, aber eine von zwei .setText() zeigt nichts auf dem Bildschirm.JTextArea.setText nicht sichtbar

Mein Code:

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); 
    } 
} 

Ausgang:

width: 1920.0 

Antwort

4

Sie müssen Ihren Text mit area.append("..."); seit area.setText("..."); überschreibt den Inhalt append.

public void append(String str): Hängt den gegebenen Text an das Ende des Dokuments.

: Setzt den Text dieser TextComponent auf den angegebenen Text.

+0

Vielen Dank für die schnelle Antwort. Es klappt:). Übrigens habe ich mich gefragt, wie ich nicht-stringartige Variablen hinzufügen (anhängen) kann. Wie ich anhängen möchte (Höhe) ohne einen Text. Ist das möglich? – sumu00

+0

Ich denke, 'area.append (" "+ height);" sollte den Trick machen. Andernfalls könnten Sie 'height' in String mit' Double.toString (height); 'oder ähnlichem umwandeln. Es sollte viele [Beispiele hier auf SO] geben (https://stackoverflow.com/questions/5766318/converting-double-to-string). Edit: @ Sumu00 Mein schlecht, du hast Recht;) Sollte sein: 'String.valueOf (Höhe);' – pzaenger

+0

Yeah "" sollte es tun. Double.ToString gibt Fehler, nicht möglich, ToString auf primitiven Typ zu verwenden – sumu00