Ich habe derzeit eine Java-Anwendung, die eine Instanz von verwendet, um Daten für den Benutzer anzuzeigen. Sie drücken eine Taste, und Daten aus einer Datenbank werden aufgefüllt.JTextArea Scroll-Funktionalität
Es gibt keine vertikale Bildlaufleiste und die Tabellen in der Datenbank enthalten mehr Zeilen als auf den Bildschirm passen.
Wie kann ich diesem Textbereich eine vertikale Bildlaufleiste hinzufügen?
Viele Teile des Codes hängen davon ab, an diezu schreiben, und es wäre ein enormer Zeitaufwand, den Code zu refaktorieren, um ihn an einen anderen Behältertyp anzupassen.
Gibt es eine Möglichkeit, die JTextArea
in eine ScrollPane
zu verpacken?
Aktuelle Code (die Textarea zeigt ohne Scrollbalken):
/**
* Initialize the contents of the frame.
*/
private void initialize() {
frame = new JFrame();
frame.setBounds(100, 100, 1057, 484);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.getContentPane().setLayout(null);
JTextArea mainTextArea = new JTextArea();
mainTextArea.setLineWrap(true);
mainTextArea.setWrapStyleWord(true);
mainTextArea.setBounds(21, 93, 995, 336);
frame.getContentPane().add(mainTextArea);
// (continued...)
Mein Versuch, den Code in einem Bildlauffenster Einwickeln (weder der Textbereich noch die Bildlaufleisten angezeigt):
/**
* Initialize the contents of the frame.
*/
private void initialize() {
frame = new JFrame();
frame.setBounds(100, 100, 1057, 484);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.getContentPane().setLayout(null);
JTextArea mainTextArea = new JTextArea();
mainTextArea.setLineWrap(true);
mainTextArea.setWrapStyleWord(true);
mainTextArea.setBounds(21, 93, 995, 336);
JScrollPane scroll = new JScrollPane (MainTextArea);
scroll.setVerticalScrollBarPolicy(JScrollPane.VERTICAL_SCROLLBAR_ALWAYS);
frame.getContentPane().add(scroll);
frame.getContentPane().setVisible(true);
// (continued...)
* „Wie kann ich eine vertikale Bildlaufleiste zu diesem Textbereich hinzufügen?“ * Lassen Sie es ia ' JScrollPane'. Beachten Sie jedoch, dass dies nicht funktioniert, wenn Sie 'null' Layouts verwenden. Java-GUIs müssen auf verschiedenen Betriebssystemen, Bildschirmgrößen, Bildschirmauflösungen usw. mit verschiedenen PLAFs in verschiedenen Locales arbeiten. Als solche sind sie nicht für ein perfektes Pixel-Layout geeignet. Verwenden Sie stattdessen Layout-Manager oder [Kombinationen davon] (http://stackoverflow.com/a/5630271/418556) zusammen mit Layout-Auffüllung und Rahmen für [Leerraum] (http://stackoverflow.com/a/17874718/ 418556). –
1) Um eine bessere Hilfe zu erhalten, sollten Sie ein [MCVE] oder [Short, Self Contained, Correct Example] (http://www.sscce.org/) veröffentlichen. 2) Bereitstellung von ASCII-Grafiken oder einer einfachen Zeichnung des * beabsichtigten * Layouts der GUI bei minimaler Größe und wenn sie in der Größe veränderbar ist, mit mehr Breite und Höhe. 3) Bitte lerne die übliche Java-Nomenklatur (Benennungskonventionen - z. B. 'EachWordUpperCaseClass',' firstWordLowerCaseMethod() ',' firstWordLowerCaseAttribute', es sei denn, es ist ein 'UPPER_CASE_CONSTANT') und benutze es konsistent. –
Lesen Sie den Abschnitt aus dem Swing-Lernprogramm zu [Wie Sie Textbereiche verwenden] (http://docs.oracle.com/javase/tutorial/uiswing/components/textarea.html) für ein funktionierendes Beispiel. Laden Sie den Code herunter und verwenden Sie ihn als Ausgangspunkt für Ihre Klasse. Der Code wird ordnungsgemäß strukturiert sein und den Swing-Konventionen folgen. Es ist erstaunlich, wie Andrew so viele Probleme mit deinen 10 Zeilen Code finden konnte. Deshalb müssen Sie Swing richtig programmieren, indem Sie mit dem Demo-Code im Tutorial beginnen. Und halten Sie einen Link zum Tutorial praktisch für alle Swing-Grundlagen. – camickr