2016-05-03 13 views
0

Vor allem anderen könnte es einige Leute geben, die diese Frage bereits gestellt haben. Ich bin mir jedoch sicher, dass ich es nicht googlen konnte. Wie auch immer, ich habe einen scrollPane, der eine viewPortView von textArea hat. Meine Frage ist, dass ich meine scrollpane zeigen möchte, wenn ich zahlreiche Komponenten in meine textArea einfügen. Wie soll ich das machen? Ich habe keine Ahnung und ich bin kein Experte für Javax Swing. -Code lautet wie folgt:Aktivieren ScrollPane, wenn Komponenten innerhalb eines Textbereichs überschreiten

textArea = new JTextArea(); 
scrollPane = new JScrollPane(); 
    textArea.setBounds(0,50,520,550); 
    textArea.setBackground(Color.DARK_GRAY); 
    scrollPane.setBounds(textArea.getBounds()); 
    scrollPane.setViewportView(textArea); 

Dank für die Hilfe!

Antwort

2

Meine Frage ist, würde ich meine Scrollpane zeigen, wenn ich zahlreiche Komponenten in meine TextArea einfügen.

Ein Textbereich zeigt Text an, keine Komponenten. Die Bildlaufleisten werden automatisch angezeigt, wenn Sie dem Textbereich tatsächlich Text hinzufügen.

textArea.setBounds(0,50,520,550); 

Verwenden Sie keine setBounds. Swing wurde für die Verwendung mit Layout-Managern entwickelt. Insbesondere funktioniert ein JScrollPane nur dann ordnungsgemäß, wenn Sie Layout-Manager verwenden.

//textArea = new JTextArea(); 
textArea = new JTextArea(5, 20); 

Wenn Sie einen JtextArea-Code erstellen, verwenden Sie den obigen Code. Dadurch kann der Textbereich seine eigene bevorzugte Größe bestimmen. Wenn Sie mehr als 5 Textzeilen hinzufügen, werden Bildlaufleisten angezeigt.

Lesen Sie den Abschnitt aus dem Swing-Tutorial auf How to Use Text Areas für weitere Informationen und Arbeitsbeispiele. Halten Sie einen Link zum praktischen Tutorial für alle Swing-Grundlagen bereit.

+0

Vielen Dank für die Idee! Ich bin grundsätzlich neu in Java Swing, also verwende ich nur das, was ich für richtig halte und was ich denke, dass ich es kann. Vielen Dank! –

2

Nur zur Information,

Wenn Sie mehrere Zeilen in dem Textbereich haben, ist die Bildlaufleiste standardmäßig bis zum Ende des Textbereiches gescrollt. Um die Zeilen im Textbereich umgebrochen und die Bildlaufleiste an den Anfang des Textbereichs zu halten, würde folgender Code helfen: