Swing JTextpane aktuallisiert nicht den setText?

JonasDev

Mitglied
Hey Leute,
ich struggle schon seit Wochen an dieses Problem mein JTextPane wird nicht aktuallisiert und ich denke es liegt an der Struktur der Anwendung, also ich mein die Polyphormie. Mein Prof meinte ich sollte Document verwenden und ich sollte es auch verwenden um den String an gewissen stellen zu stylen. Jedoch ist dies nicht so wichtig, mir geht es in erster Linie um die Aktuallisierung des JTextPane. Ihr seit jetzt meine letzte Hoffnung sonst sind 6 Punkte verstrichen :( .

In dieser Klasse erstelle ich das JFrame und hier fängt auch das Programm an durch den Aufruf des Konstruktors.
Java:
private Ausgabe ausgabe;
private KalenderFrameSplit content = new KalenderFrameSplit();

public KalenderFrame() throws HeadlessException {
    erzeugeFrame();
}

public void erzeugeFrame() {
    setJMenuBar(KalenderMenuBar.getInstance().erstelleMenu(this));
    setTitle("Kalender");
    setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
    setPreferredSize(new Dimension(1000, 500));

    JSplitPane splitPane = content.bestimmeJSplitpane();
    add(splitPane);

    pack();
    setLocationRelativeTo(null);
    validate();
    setVisible(true);
}

Hier wird das JFrame aufgeteilt in bestimmten bereichen. Ich denke hier liegt das problem weil es einmal eingelesen wird. Ich hab schon ausprobiert die bestimmeJSplitpane() nochmal aufzurufen wenn das RadioButton angeklickt ist damit es wieder aktuallisiert wird aber leider hat es nicht funktioniert.
Java:
private KalenderFrameLinks links = new KalenderFrameLinks();
private KalenderFrameMitte mitte = new KalenderFrameMitte();
private KalenderFrameRechts rechts = new KalenderFrameRechts();

public JSplitPane bestimmeJSplitpane() {

    JPanel leftPanel = this.links.linkerBereich();
    JScrollPane centerPanel = this.mitte.mittlererBereich();
    JPanel rightPanel = this.rechts.rechterBerech();

    JSplitPane splitPane1 = new JSplitPane();
    JSplitPane splitPane2 = new JSplitPane();
    splitPane1.setOrientation(JSplitPane.HORIZONTAL_SPLIT);
    splitPane1.setRightComponent(splitPane2);
    splitPane1.setLeftComponent(leftPanel);
    splitPane1.setEnabled(true);
    splitPane1.setDividerSize(3);

    splitPane2.setOrientation(JSplitPane.HORIZONTAL_SPLIT);
    splitPane2.setRightComponent(rightPanel);
    splitPane2.setLeftComponent(centerPanel);
    splitPane2.setDividerLocation(-2000);
    splitPane2.setEnabled(true);
    splitPane2.setMinimumSize(new Dimension(4000, 0));
    splitPane2.setDividerSize(3);

    return splitPane1;
}

Hier sollte der TextPane aktuallisiert werden. Der String wert der zurückgegeben wird ist Korrekt und er wird auch erstellt wenn das Signal vom RadioButton kommt jedoch aktuallisiert sich das TextPane nicht. Mein Professor sagte ich sollte Document verwenden und ich muss auch Document verwenden um Style hinzuzufügen. Er meinte das ich durch Document mein TextPane aktualisieren kann jedoch hat mir java doc und stackoverflow nicht weiter geholfen.
Java:
private String monatsblattBauplan;

JTextPane textPane = new JTextPane();
public JScrollPane mittlererBereich() {
        JPanel panel = new JPanel(new BorderLayout());

        JTextPane textPane = new JTextPane();
        textPane.setText( "" );
        StyledDocument doc = textPane.getStyledDocument();

//  Define a keyword attribute

        SimpleAttributeSet keyWord = new SimpleAttributeSet();
        StyleConstants.setForeground(keyWord, Color.RED);
        StyleConstants.setBackground(keyWord, Color.YELLOW);
        StyleConstants.setBold(keyWord, true);

//  Add some text

        try
        {
            doc.insertString(0, monatsblattBauplan , null );

            doc.insertString(doc.getLength(), "", keyWord );
        }
        catch(Exception e) { System.out.println(e); }

        this.textPane.setLayout(new BorderLayout(200, 200));
        this.textPane.setEditable(false);
        panel.add(textPane);
        panel.setBackground(Color.white);

        JScrollPane scrollPane = new JScrollPane();
        scrollPane.setViewportView(panel);
        scrollPane.setVerticalScrollBarPolicy(JScrollPane.VERTICAL_SCROLLBAR_ALWAYS);
        return scrollPane;
    }

Das ist der RadioButton der das Signal gibt den TextPane zu aktuallisieren durch die Methode baueMonatblattZusammen(jahr).
Java:
private KalenderFrameMitte mitteBereich = new KalenderFrameMitte();
private KalenderFrameLinks linkerBereich = new KalenderFrameLinks();
public JPanel rechterBerech() {
    JPanel panel = new JPanel();
    panel.setLayout(new GridBagLayout());

    JLabel aktionLabel = new JLabel("Aktion waehlen:");

    JRadioButton kalenderblatt = new JRadioButton(this.ausgabe.radioButtonMenue(1), false);
    kalenderblatt.addItemListener(new ItemListener() {
        @Override
        public void itemStateChanged(ItemEvent e) {
            if (e.getStateChange() == ItemEvent.SELECTED) {

                int jahr = Kalender.getInstance().getJahr();
                Kalender.getInstance().setModus(-1);

                System.out.println("Kalenblatt Radiobutton clicked: jahr = "+jahr );

                mitteBereich.baueMonatblattZusammen(jahr);
            } else {

            }
        }
    });
}
 

JonasDev

Mitglied
Harry,
Sorry hab ganze vergessen diese Methode anzugeben. Also diese Methode funktioniert in der Konsole gibt es was aus aber als JTextpane wird es halt nicht gespeichert.
Java:
public String baueMonatblattZusammen(int jahr) {
    StringBuilder stringBuilder = new StringBuilder();
    for (int monat = 1; monat <= 12; monat++) {
        baueMonatblattZusammen(monat,jahr);
        stringBuilder.append(Kalender.getInstance().getMonatsblatt(jahr, monat));
        stringBuilder.append(String.format("%n"));
    }


    this.monatsblattBauplan = stringBuilder.toString();
    return stringBuilder.toString();
}
 

JonasDev

Mitglied
Naja in der Methode mitteBereich ist ja set Text und ich hab dass davor mit einer zuweisung von baueMonatsblatt zusammen probiert und es hat nicht geklappt. Ich kann das ja ändern aber es bleibt der Fakt das sich diese Methode nicht aktuallisiert.
 

JonasDev

Mitglied
Java:
private String monatsblattBauplan;
 public JScrollPane mittlererBereich() {
        JPanel panel = new JPanel(new BorderLayout());

        JTextPane textPane = new JTextPane();
        textPane.setText(monatsblattBauplan);
        StyledDocument doc = textPane.getStyledDocument();

//  Define a keyword attribute

        SimpleAttributeSet keyWord = new SimpleAttributeSet();
        StyleConstants.setForeground(keyWord, Color.RED);
        StyleConstants.setBackground(keyWord, Color.YELLOW);
        StyleConstants.setBold(keyWord, true);

//  Add some text

        try
        {
            doc.insertString(0, monatsblattBauplan , null );

            doc.insertString(doc.getLength(), "", keyWord );
        }
        catch(Exception e) { System.out.println(e); }



        this.textPane.setLayout(new BorderLayout(200, 200));
        this.textPane.setEditable(false);
        panel.add(textPane);
        panel.setBackground(Color.white);

        JScrollPane scrollPane = new JScrollPane();
        scrollPane.setViewportView(panel);
        scrollPane.setVerticalScrollBarPolicy(JScrollPane.VERTICAL_SCROLLBAR_ALWAYS);
        return scrollPane;
    }
 

Harry Kane

Top Contributor
Naja in der Methode mitteBereich ist ja set Text und ich hab dass davor mit einer zuweisung von baueMonatsblatt zusammen probiert und es hat nicht geklappt.
"Klappt nicht" ist keine Fehlberbeschreibung. Das einzige setText() was ich in deinem Code erkenne, bekommt als Parameter monatsblattBauplan, was in deinem Code nicht initialisiert wird.
Du hast zwar in viertem Codeblock aus deinem ersten Post den Aufruf mitteBereich.baueMonatblattZusammen(jahr) drin, machst mit dem Rückgabewert aber nichts.
Da ausserdem alle deine Codeblöcke aus dem KLassenkontext gerissen sind, kann man nur raten, welcher Block zu welcher Klasse gehört, und welche Klassen man wie miteinander verknoten müsste, damit das ganze Konstrukt überhaupt irgendwie funktioniert.
es bleibt der Fakt das sich diese Methode nicht aktuallisiert
Variablennamen können auf ein neues Objekt zeigen, veränderbare Objekte wie Arrays oder Collections können geändert werden, und Gui-Komponenten können meinetwegen "aktualisiert" werden. Methoden aktualisieren sich nicht. Sie werden aufgerufen oder eben nicht.
Lies das mal durch: https://www.java-forum.org/thema/wie-man-fragen-richtig-stellt.7407/
 

JonasDev

Mitglied
Naja egal versteh nicht genau was du von mir willst dann lass ich das. Also das 2. Versteh ich aber das 1. nicht . Ich rufe die Rechte klass auf und dieser enthält radiobuttons. Diese Radiobuttons enthalten aus dem linkenbereich die informationen des monats und jahr. Wenn ein Radiobutton selected ist dann soll der monatsblatt was in baueMonatsblatt gebaut wurde zurückgegeben werden und global initialisiert. Jetzt frag ich mich halt wie ich es anstellen kann das der textpane die Änderung erfährt und im mittleren Bereich es aktualisiert.
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
B Stylen eines JTextPane funktioniert nicht AWT, Swing, JavaFX & SWT 1
T JTextPane ignoriert HTML Zeilenumbruch <br> tag wegen eigenem HTMLEditorKit AWT, Swing, JavaFX & SWT 5
M Strings im JTextPane vergleichen und mit StyledDocument formatieren AWT, Swing, JavaFX & SWT 3
X JTextPane automatischer Zeilenumbruch IM Wort AWT, Swing, JavaFX & SWT 2
R GUI Element in einer Methode aktualisieren (JTextPane) AWT, Swing, JavaFX & SWT 13
M Swing JTextPane, Bilder und Text-flow AWT, Swing, JavaFX & SWT 2
D Swing Breite einer HTML Tabelle in einer JTextPane AWT, Swing, JavaFX & SWT 6
S Swing Warum funktioniert der automatische Zeilenumbruch mit arabischen Zeichen beim JTextPane nicht AWT, Swing, JavaFX & SWT 3
S Swing JtextPane sau langsam AWT, Swing, JavaFX & SWT 15
J Swing JTextPane mit JScrollPane auf JPanel scrollen nicht AWT, Swing, JavaFX & SWT 6
C JTextPane scrollt mit setText() immer nach oben AWT, Swing, JavaFX & SWT 2
S Swing Style Attribute aus JTextPane kopieren AWT, Swing, JavaFX & SWT 1
E JTextPane Focus AWT, Swing, JavaFX & SWT 1
TheJavaKid JTextPane: komplexe Formatierung (links) AWT, Swing, JavaFX & SWT 2
B Swing JTextPane - Einfärbungen auf "default" AWT, Swing, JavaFX & SWT 2
A Swing Einrücken mehrerer Zeilen per Tab in einem JTextPane/JTextArea AWT, Swing, JavaFX & SWT 3
T JtextPane Zeile aktualisieren AWT, Swing, JavaFX & SWT 3
T Hintergrundbild in JTextPane fixieren AWT, Swing, JavaFX & SWT 2
M Swing JTextPane frisst Anführungszeichen AWT, Swing, JavaFX & SWT 2
M Swing JTextPane + Scrollbar = Fragen AWT, Swing, JavaFX & SWT 15
H Swing JTextPane hat unästhetisches Scrollbar AWT, Swing, JavaFX & SWT 3
R Swing Renderproblem bei HTML in einer JTextPane AWT, Swing, JavaFX & SWT 12
N Swing JTextPane zur Anzeige von HTML AWT, Swing, JavaFX & SWT 2
E Swing jTextPane Text datei anzeigen AWT, Swing, JavaFX & SWT 7
xehpuk Swing Line-wrapping von JTextPane (in JScrollPane) AWT, Swing, JavaFX & SWT 3
Tobse Swing [JTextPane] Farbliche Hervorhebung AWT, Swing, JavaFX & SWT 9
X Swing JTextPane bei Größenänderung Formatierung behalten AWT, Swing, JavaFX & SWT 11
0 JTextPane copy/paste trotz editable(false) ? AWT, Swing, JavaFX & SWT 10
T Swing JTextPane Tastatureingabe abfangen AWT, Swing, JavaFX & SWT 4
B Durchsichtiges JScroll und JTextPane AWT, Swing, JavaFX & SWT 4
xehpuk Swing JTextPane in JScrollPane wird nicht ordentlich neugezeichnet AWT, Swing, JavaFX & SWT 3
S Swing JTextPane append formatprobleme AWT, Swing, JavaFX & SWT 5
C JTextPane / JEditorPane ohne Keywords farbig machen AWT, Swing, JavaFX & SWT 4
C Zeilenumbruch von JTextPane wird nicht erkannt AWT, Swing, JavaFX & SWT 2
S JEditorPane oder JTextPane? AWT, Swing, JavaFX & SWT 2
P Aktuelle Zeile in JTextPane farblich hervorheben AWT, Swing, JavaFX & SWT 3
J JTextPane Background setzen AWT, Swing, JavaFX & SWT 6
T Text in JTextPane vertikal (!) zentrieren AWT, Swing, JavaFX & SWT 4
M Zugriff paralleler Threads auf selbes JTextPane AWT, Swing, JavaFX & SWT 6
M JTextPane - bewegungsloses Hintergrundsbild (Duplikat) AWT, Swing, JavaFX & SWT 2
B JTextPane formatierten Inhalt speichern AWT, Swing, JavaFX & SWT 2
E JTextPane setText ignoriert \n AWT, Swing, JavaFX & SWT 6
P Swing Sichtbaren teil eines JTextPane herausbekommen (mit JScrollPane) AWT, Swing, JavaFX & SWT 2
C Swing JTextPane zeigt HTML-Text aus Variable nicht an :( AWT, Swing, JavaFX & SWT 3
T Zeichen zählen JTextPane AWT, Swing, JavaFX & SWT 4
K Swing JTextPane Formatierungen SyntaxHighlighting AWT, Swing, JavaFX & SWT 11
F Mit TAB JTextPane wechseln AWT, Swing, JavaFX & SWT 5
J JSlider auf JTextPane? AWT, Swing, JavaFX & SWT 2
S Buchstabenpositionen in JTextPane erhalten..? AWT, Swing, JavaFX & SWT 5
I JTextPane und Hyperlink (ohne JEditorPane) AWT, Swing, JavaFX & SWT 5
T Swing JTextArea, JTextPane, JEditorPane...Unterschied?! AWT, Swing, JavaFX & SWT 3
A Swing JTextPane sehr langsam AWT, Swing, JavaFX & SWT 6
P Drucken von Jtextpane mit Seitenangabe AWT, Swing, JavaFX & SWT 1
M Swing JTextPane mit JScrollPane soll aussehen wie JLabel AWT, Swing, JavaFX & SWT 3
A JTextPane: Text hinzufügen AWT, Swing, JavaFX & SWT 9
E Swing JTextPane Inhalt(Text und Bilder) als HTML text bekommen AWT, Swing, JavaFX & SWT 3
K Swing jTextPane zeilenumbruch AWT, Swing, JavaFX & SWT 2
Stillmatic JTextPane langsam? AWT, Swing, JavaFX & SWT 5
E Swing JTextPane linewrap AWT, Swing, JavaFX & SWT 4
M Swing [JTextPane] Cursor lässt sich nicht mit Pfeiltasten bewegen AWT, Swing, JavaFX & SWT 3
T Swing xml in JTextPane mit EditorKit, StyledDocument & co. AWT, Swing, JavaFX & SWT 3
M Cursor setzen im JTextPane AWT, Swing, JavaFX & SWT 3
M Formatierungsfehler JTextPane WARUM ?? AWT, Swing, JavaFX & SWT 4
JavaKaffee Array auslesen in jTextPane? AWT, Swing, JavaFX & SWT 9
E JTextPane Bold Italic und Co AWT, Swing, JavaFX & SWT 6
M JTextPane Ende des Feldes AWT, Swing, JavaFX & SWT 4
D JTextPane - Text andersfarbig unterstreichen AWT, Swing, JavaFX & SWT 7
P Probleme mit JTextpane AWT, Swing, JavaFX & SWT 7
M Größe von JTextPane manuell bei Bedarf anpassen AWT, Swing, JavaFX & SWT 6
bugmenot JTextPane String stimmt nicht mit übergebenem String überein AWT, Swing, JavaFX & SWT 9
C JTextPane <br oder <p> statt \n AWT, Swing, JavaFX & SWT 2
C JTextPane HTML und eigene Tags AWT, Swing, JavaFX & SWT 10
G JTextPane durchsichtig? AWT, Swing, JavaFX & SWT 6
GilbertGrape Fehler bei HTML in JTextPane AWT, Swing, JavaFX & SWT 2
S JTextPane: Probem mit AlignmentAction AWT, Swing, JavaFX & SWT 3
J Problem mit JTextPane & JScrollPane (horizontal) AWT, Swing, JavaFX & SWT 3
B JTextPane und Image importieren in HTML String. AWT, Swing, JavaFX & SWT 2
J JTextPane mit genau 80 Zeichen breite definieren? AWT, Swing, JavaFX & SWT 3
J Html in JTextPane anzeigen? AWT, Swing, JavaFX & SWT 2
Steev JTextPane mit Textformatierung funktioniert nicht AWT, Swing, JavaFX & SWT 5
S JTextPane - markierten Text Formatieren AWT, Swing, JavaFX & SWT 11
P HTMLDocument in einem JTextPane. Anhängen von HTML-Code AWT, Swing, JavaFX & SWT 2
M Makierten Text in JTextPane zentrieren AWT, Swing, JavaFX & SWT 2
F JTextPane aktive Zeile AWT, Swing, JavaFX & SWT 2
G insert & JTextPane AWT, Swing, JavaFX & SWT 4
J JTextPane bekommt keinen Focus! AWT, Swing, JavaFX & SWT 3
S Farben eienr JTextPane dynamisch zuweisen AWT, Swing, JavaFX & SWT 2
R JTextPane scrollen vermeiden AWT, Swing, JavaFX & SWT 2
B Feste Breite einer JTextPane, die HTML anzeigt AWT, Swing, JavaFX & SWT 8
A JScrollPane in JTextPane AWT, Swing, JavaFX & SWT 2
B Swing Logging: Ein/Ausblenden eines scrollenden JTextPane AWT, Swing, JavaFX & SWT 2
F Java JTextPane AWT, Swing, JavaFX & SWT 13
Saxony JTextPane - letzte Zeile löschen AWT, Swing, JavaFX & SWT 4
TheJavaKid LineWrap & WrapStyleWord in JTextPane AWT, Swing, JavaFX & SWT 3
G Zeilenabstand bei HTML-Texten in JLabel/JTextPane AWT, Swing, JavaFX & SWT 7
O Swing Xml highlightning mit JTextPane und Regular expressions AWT, Swing, JavaFX & SWT 5
J JTextPane Alignment AWT, Swing, JavaFX & SWT 6
Y entfernten String einer JTextPane per DocumentListener AWT, Swing, JavaFX & SWT 5
B Ein großes JTextPane komplett drucken AWT, Swing, JavaFX & SWT 2
7 Latex/MathML Code in JTextPane AWT, Swing, JavaFX & SWT 2

Ähnliche Java Themen

Neue Themen


Oben