Swing JTextArea mit fester Anzahl Spalten!

G

Gast2

Gast
Hallo an alle!

Ich beginne gerade mit Java Swing zu programmieren und kämpfe akut mit den Layout Managern und einer TextArea innerhalb einer ScrollPane.

Folgendes Problem habe ich:

Ich programmiere eine Software in der auch eine Konsolenausgabe zu sehen ist. Das Problem ist nur, dass aufgrund einer Abwärtskompatibilität eine feste Spaltenanzahl des Konsolen "Fensters" benötigt wird. (Sonst ist die Ausgabe nicht lesbar).

Ich habe nun ein JTextArea innerhalb einer ScrollPane programmiert.

Was ich einfach nicht hinbekomme ist, dass die Breite der ScrollPane EXAKT so groß ist, dass die TextArea immer genau z.B. 8 Buchstaben in einer Zeile anzeigt. Und zwar unabhängig von einer angezeigten Scrollbar oder nicht.

Die Höhe ist variabel.

Ich hoffe mir kann jemand helfen.

Gruß Florian

PS: Das ist mein erster Post hier im Forum. Suchfunktion hat mir kein Ergebnis geliefert und bei Google wurde ich auch nicht fündig. Kann natürlich daran liegen, dass ich noch nicht so viel Erfahrung habe wie ich bei Java API Problemen die Suchanfrage formulieren muss. Sollte ich also was übersehen haben bitte verzeiht es mir.
 
G

Gast2

Gast
Hier die Beispielklasse für das ConsoleWidget:

Java:
public class ConsoleWidget extends JPanel implements CommInterfaceListener {

    private JScrollPane scrollPane;
    private JTextArea text;

    public ConsoleWidget() {
        super();
        text = new JTextArea(0,8);
        text.setLineWrap(true);
        text.setFont(new Font("Monospaced", Font.PLAIN, 12));
        text.setEditable(false);        
        DefaultCaret caret = (DefaultCaret) text.getCaret();
        caret.setUpdatePolicy(DefaultCaret.ALWAYS_UPDATE);

        scrollPane = new JScrollPane(text,
                ScrollPaneConstants.VERTICAL_SCROLLBAR_AS_NEEDED,
                ScrollPaneConstants.HORIZONTAL_SCROLLBAR_NEVER);
        
        setLayout(new BorderLayout());
        add(BorderLayout.CENTER, scrollPane);
    }

    ...

Und die Testklasse, welche auch den Frame instantiiert.

Java:
public class TestConsoleWidget {

    private ConsoleWidget consoleWidget;
    private JFrame frame;
    private CommInterfaceSerial intf;

    public TestConsoleWidget() {
        frame = new JFrame();
        frame.addWindowListener( new WindowClosingAdapter() );

        consoleWidget = new ConsoleWidget();
        frame.add(BorderLayout.WEST, consoleWidget);
        frame.setSize(480, 640);
        frame.setVisible(true);

        intf = new CommInterfaceSerial("COM1", 4800);
        intf.addCommInterfaceListener(consoleWidget);

        char c = 0x0D;
        intf.send("X0" + c + "P1" + c + "P2" + c + "P3" + c + "P4" + c);
    }

    class WindowClosingAdapter extends WindowAdapter {

        @Override
        public void windowClosing(WindowEvent e) {
            intf.close();
            System.exit(0);
        }
    }

    public static void main(String[] args) {
        TestConsoleWidget widget = new TestConsoleWidget();
    }

Habe alle nicht relevanten Teile (Herkunft der Texte ect.) weggelassen.

Anbei noch ein Screenshot wie es aussieht (Wenn die Scrollbar eingeblendet wird sind nur 4 Spalten Text zu lesen).
 

Anhänge

  • java.jpg
    java.jpg
    16,2 KB · Aufrufe: 39
Zuletzt bearbeitet von einem Moderator:
G

Gast2

Gast
Zeig die Scrollbar einfach von Anfang an.
Aber die Columns geben nicht an wieviel Satzzeichen du sehen kannst.
 
G

Gast2

Gast
Scrollbar von Anfang an anzeigen hat schon mal geholfen.

Wie würde es denn gehen wenn man sie nicht von Anfang an anzeigt? Wie mus sich die ScrollPane denn dann aktualisieren?

Satzzeichen sind egal. Ist eh nur HexCode und ähnlich kryptisches Zeug.
 
G

Gast2

Gast
Satzzeichen sind egal. Ist eh nur HexCode und ähnlich kryptisches Zeug.

Sorry meinte nicht Satzzeichen sondern allgemeint Zeichen 8 Columns heißt nicht dass du nur 8 Buchstaben siehst. Kommt ja auf die Schriftgröße/Font usw. an.


Außerdem hast du LineWrap true drin wenn also eien falsche Reihenfolge ohne Zeilenumbruch kommt dann bricht er eben um.

Wie gesagt lass die Scrollbar von anfang an angezeigt da hast am wenigstens ärger damit und es stört auch nicht
 
Zuletzt bearbeitet von einem Moderator:
G

Gast2

Gast
As Vorabinfo: Habe einen Monotype Font eingestellt.

Frage 1) Siehe vorheriger Post: Wie würde man die Scroll Pane updaten müssen würde man sie nicht von vorne herein einblenden.

Frage 2) Wofür genau steht denn die Columns dann?

Schon mal vielen Dank für die Antworten soweit.
 
G

Gast2

Gast
As Vorabinfo: Habe einen Monotype Font eingestellt.


Frage 2) Wofür genau steht denn die Columns dann?

Ja sieh ich und mit diesem Font passt es zufällig und Größe passen die Columns aber nehme mal die ursprüngliche Font größe dann passen viel mehr zeichen rein...

Das heißt wenn du irgendwann mal dein Font ändern solltest klappt vielleicht nicht mehr.

Das mit der Scrollbar keine Ahnung.
 
G

Gast2

Gast
Der Font bleibt in jedem Fall ein Monospaced.

Die Frage der Scrollbar richte ich dann nochmal an den Rest der den Thread vielleicht noch liest.

@Sir Wayne: Schon mal vielen Dank!
 

jgh

Top Contributor
Welche der ScrollBars du anzeigen willst, kannst du mit den
Code:
setHorizontalScrollBarPolicy(int policy)
, bzw.
Code:
setVerticalScrollBarPolicy(int policy)
erreichen, bspw. so.

Java:
JScrollPane jsp = new JScrollPane();
		jsp
				.setHorizontalScrollBarPolicy(ScrollPaneConstants.HORIZONTAL_SCROLLBAR_AS_NEEDED);
		jsp
				.setVerticalScrollBarPolicy(ScrollPaneConstants.VERTICAL_SCROLLBAR_ALWAYS);
 
G

Gast2

Gast
Welche der ScrollBars du anzeigen willst, kannst du mit den
Code:
setHorizontalScrollBarPolicy(int policy)
, bzw.
Code:
setVerticalScrollBarPolicy(int policy)
erreichen, bspw. so.

Java:
JScrollPane jsp = new JScrollPane();
		jsp
				.setHorizontalScrollBarPolicy(ScrollPaneConstants.HORIZONTAL_SCROLLBAR_AS_NEEDED);
		jsp
				.setVerticalScrollBarPolicy(ScrollPaneConstants.VERTICAL_SCROLLBAR_ALWAYS);

Wie man in meinem Beispiel sieht ist mir das ja schon bekannt.

Die Frage war ja, wie man die ScrollPane entsprechend aktualisiert, dass nachdem die Scrollbar eingeblendet wurde die ScrolPane breiter wird um das TextArea noch komplett anzeigen zu können.
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
C Swing JTextArea mit fester Breite und angepasster Höhe??? AWT, Swing, JavaFX & SWT 8
T Swing Mehrere Ausgaben in JTextArea AWT, Swing, JavaFX & SWT 2
B JPanel-Inhalte inkl. JTextarea zoomen? AWT, Swing, JavaFX & SWT 3
P JTextarea (in JScrollPane) zeigt nur die beiden letzten Einträge an? AWT, Swing, JavaFX & SWT 0
RedEagle Swing JTextArea ist leer AWT, Swing, JavaFX & SWT 13
E Warum wird Text im JTextArea erst am Programmende angezeigt ? AWT, Swing, JavaFX & SWT 1
E wie in JScrollPane auf JTextArea zugreifen AWT, Swing, JavaFX & SWT 12
K Swing 2 JTextArea parrallel scrollable AWT, Swing, JavaFX & SWT 16
Hatsi09 JTextArea Inhalt verlinken AWT, Swing, JavaFX & SWT 4
ralfb1105 jTextArea Scrollbar hinzufügen - mit Jigloo erstellt AWT, Swing, JavaFX & SWT 7
S Ausgabe in JTextArea AWT, Swing, JavaFX & SWT 13
H JTextArea - farbige Zeilen .. bitte um Vorschläge zur Implementierung AWT, Swing, JavaFX & SWT 1
F 2D-Grafik JTextArea drucken bringt mieses Ergebnis AWT, Swing, JavaFX & SWT 2
Mario1409 Swing JTextArea scroll Problem AWT, Swing, JavaFX & SWT 0
Bluedaishi JTextArea gefundene Zeile nach Oben Scrollen AWT, Swing, JavaFX & SWT 13
S JTextArea Text nach oben wandern lassen AWT, Swing, JavaFX & SWT 7
Bluedaishi JtextArea AWT, Swing, JavaFX & SWT 6
V JScrollBar soll weiterscrollen, wenn Inhalt von JTextArea erweitert wird AWT, Swing, JavaFX & SWT 7
G JTextArea mit JScrollPane wird nicht angezeigt AWT, Swing, JavaFX & SWT 2
Bluedaishi JDialog modal und JTextArea AWT, Swing, JavaFX & SWT 4
F JTextarea Steuern ~ consolenanbindung AWT, Swing, JavaFX & SWT 5
F Event Handling JTextArea auf bestimmte Eingabe reagieren (Return-Taste) AWT, Swing, JavaFX & SWT 2
F JTextArea hat keinen Rahmen AWT, Swing, JavaFX & SWT 10
N JTextArea Events weiterleiten AWT, Swing, JavaFX & SWT 3
R JTextArea mit verschiedenen Textfarben AWT, Swing, JavaFX & SWT 6
M JTextArea wird nicht aktualisiert (ActionListener-Problem) AWT, Swing, JavaFX & SWT 1
HoloYoitsu jTextArea.setCaretPosition(); What am I doing wrong? AWT, Swing, JavaFX & SWT 0
S Zeilenumbruch jTextArea mit toString AWT, Swing, JavaFX & SWT 2
F Swing String[] in JTextArea ausgeben. Jeder Eintrag in neue Zeile, aber ohne "\n"- Geht das? AWT, Swing, JavaFX & SWT 3
M JTextArea - Leertaste "sperren" AWT, Swing, JavaFX & SWT 1
S Inhalt der Java-Konsole in die JTextArea AWT, Swing, JavaFX & SWT 3
M Swing JTextArea mit ScrollBar AWT, Swing, JavaFX & SWT 9
S Swing Zahl der Zeilenumbrüche in einer JTextArea bestimmen AWT, Swing, JavaFX & SWT 1
F Swing Caret in JTextArea vergrößern AWT, Swing, JavaFX & SWT 2
D JTextArea auf KeyListener Command AWT, Swing, JavaFX & SWT 6
N JFrame änliches wie JTextArea? AWT, Swing, JavaFX & SWT 2
A Swing JTextArea - Multi-Line-Editing AWT, Swing, JavaFX & SWT 2
A Swing JTextArea aus anderer Klasse in realtime aktualisieren AWT, Swing, JavaFX & SWT 3
O JTextArea befüllen AWT, Swing, JavaFX & SWT 2
G JTextArea on the fly aus anderem Programm befüllen AWT, Swing, JavaFX & SWT 4
A Swing Einrücken mehrerer Zeilen per Tab in einem JTextPane/JTextArea AWT, Swing, JavaFX & SWT 3
T Swing Ausgabe aus ArrayList in Klasse1 in jTextArea in Klasse2 AWT, Swing, JavaFX & SWT 2
B JTextArea Größe an Container anpassen AWT, Swing, JavaFX & SWT 2
B Drucken der JTextArea AWT, Swing, JavaFX & SWT 4
M JTextArea Zeile hinzufügen AWT, Swing, JavaFX & SWT 4
C JTextArea scrollt bei append(String) aus Threads nicht ans Ende AWT, Swing, JavaFX & SWT 7
P JPanel- Listener durch JTextArea aktivieren AWT, Swing, JavaFX & SWT 8
A JTextArea - Zeichenbegrenzung nach .txt Datei import AWT, Swing, JavaFX & SWT 6
M Swing JScrollPane (Parent JTextArea) aktualisieren + neue Zeile AWT, Swing, JavaFX & SWT 5
Hoppelmann Swing Tasten in JTextArea blockieren AWT, Swing, JavaFX & SWT 2
S JTextArea Tastaturanschläge AWT, Swing, JavaFX & SWT 2
E Swing JTextArea in JFrame, wie nun WindowFocusListener implementieren? AWT, Swing, JavaFX & SWT 2
S Problem mit JButton und JTextArea AWT, Swing, JavaFX & SWT 2
J Swing Mitwachsende JTextArea+ JPanel AWT, Swing, JavaFX & SWT 4
P Swing JtextArea füllen mit setText AWT, Swing, JavaFX & SWT 7
M Probleme mit der Selektion einer JTextArea AWT, Swing, JavaFX & SWT 3
T Die Größe einer JTextArea an Ihren Parent JPanel anpassen. AWT, Swing, JavaFX & SWT 5
hdi Swing ListCellRenderer + JTextArea + LineWrap AWT, Swing, JavaFX & SWT 6
T ComponentOrientation in JTextArea AWT, Swing, JavaFX & SWT 3
H Hintergrundbild in jTextArea AWT, Swing, JavaFX & SWT 4
G ein JTextArea in zwei JPanels AWT, Swing, JavaFX & SWT 2
L JTextArea mit JScrollPane AWT, Swing, JavaFX & SWT 7
padde479 Swing replace JTextArea funktioniert nicht AWT, Swing, JavaFX & SWT 2
L Zeilenumbrüche aus JTextArea MIT in Textdatei schreiben AWT, Swing, JavaFX & SWT 4
_dp jTextArea/jTextPanel Auto Höhe AWT, Swing, JavaFX & SWT 5
Ollek JTextArea - Feste Zeilenanzahl(8 Zeilen) AWT, Swing, JavaFX & SWT 3
S Swing JTextArea während der Laufzeit füllen AWT, Swing, JavaFX & SWT 5
Ollek Text in JTextField und JTextArea zur Laufzeit ändern AWT, Swing, JavaFX & SWT 6
P Datenelement anderer Klasse in JTextArea ausgeben AWT, Swing, JavaFX & SWT 4
P Scrollbar JTextArea AWT, Swing, JavaFX & SWT 23
M Swing Ausgabe in JTextArea verzögern AWT, Swing, JavaFX & SWT 7
T Swing jTextArea soll sich der Fenstergröße anpassen beim ziehen?? AWT, Swing, JavaFX & SWT 2
S System.out in JTextArea AWT, Swing, JavaFX & SWT 4
S Swing JTextArea - Bild auf/ab Tasten implementieren AWT, Swing, JavaFX & SWT 4
J JTextArea verschwindet bei resize vom JFrame AWT, Swing, JavaFX & SWT 2
VfL_Freak "setAccelerator/KeyStroke" bei JTextArea ? AWT, Swing, JavaFX & SWT 6
P Swing JTextArea - beim neuzeichnen bleibt manchmal weißer Kasten AWT, Swing, JavaFX & SWT 10
Dit_ JTextArea zu Zeile X scrollen AWT, Swing, JavaFX & SWT 4
H variable Höhe einer JTextArea (als Renderer/Editor) als Zelle einer JTable AWT, Swing, JavaFX & SWT 9
B Wechsel JTextArea und JComponent AWT, Swing, JavaFX & SWT 9
M [erledigt] Bestimmte Zeile aus JTextArea löschen AWT, Swing, JavaFX & SWT 3
G Swing JTable und JTextArea synchronisieren AWT, Swing, JavaFX & SWT 2
C JLabel, JTextArea, JScrollPane. repaint(); ? AWT, Swing, JavaFX & SWT 6
M JTextArea AWT, Swing, JavaFX & SWT 2
E Swing JTextArea Alternative? AWT, Swing, JavaFX & SWT 5
A Swing JTextArea über Frame hinaus anzeigen? AWT, Swing, JavaFX & SWT 2
S JInternalFrame oder JTextArea neu laden AWT, Swing, JavaFX & SWT 2
N JTextArea.setLineWrap Bug? AWT, Swing, JavaFX & SWT 3
N Swing JTextArea/JScrollpane: JScrollbar position AWT, Swing, JavaFX & SWT 8
I JTextArea mit Copy Paste Funktion AWT, Swing, JavaFX & SWT 7
M Swing JTextArea größe anpassen & setBackground liefer Nullpointer AWT, Swing, JavaFX & SWT 4
Plastagen JTextArea CaretPosition Aktualisierung AWT, Swing, JavaFX & SWT 10
C JTextField und JTextArea - Verständnisproblem AWT, Swing, JavaFX & SWT 14
B Exceptions werfen und in JTextArea ausgeben AWT, Swing, JavaFX & SWT 4
F new Line in JTextarea AWT, Swing, JavaFX & SWT 15
X Problem bei JTextArea und Thread.sleep() AWT, Swing, JavaFX & SWT 8
J Beliebtes Problem: Scrollbar in JTextArea AWT, Swing, JavaFX & SWT 4
w0ddes Swing JTextArea auf JScrollPane - Autoscroll?! AWT, Swing, JavaFX & SWT 2
Developer_X Swing Java JTextArea auto scroll down AWT, Swing, JavaFX & SWT 6
T Swing JTextArea, JTextPane, JEditorPane...Unterschied?! AWT, Swing, JavaFX & SWT 3

Ähnliche Java Themen

Neue Themen


Oben