Ändern von Text in JLabel mit einem Button

Mojo7310

Mitglied
Guten Tag,

ich fass mich kurz. Ich möchte den Text von isPalindrom beim Drücken vom Butten umdrehen ändern. Aber anstatt sich zu ändern, verschwiendet er einfach.

Ich hoffe auf schnelle Hilfe und anfängerfreundliche Antwort.


Java:
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
import java.awt.Graphics.*;

public class PalindromPrueferGUI extends JFrame
{
    private JTextField eingabe;
    private JTextField ausgabe;
    private JButton umdrehen;
    private JPanel pEingabe;
    private JPanel pAusgabe;
    private JPanel pUmdrehen;
    private JLabel isPalindrom;
    private Palindrompruefer wow;

   
    public PalindromPrueferGUI()
    {
        super("Palindromprüfer");
       
       
        eingabe = new JTextField(20);
        ausgabe = new JTextField(20);
        ausgabe.setEditable(false);
        umdrehen = new JButton("Umdrehen");
       
       
        String palindrom = eingabe.getText();
       
        wow = new Palindrompruefer(palindrom);
       

        pEingabe = new JPanel();
        pAusgabe = new JPanel();
        pUmdrehen = new JPanel();
       
        isPalindrom = new JLabel("Noch nicht getestet!");
       
       
        pEingabe.add(new JLabel("Eingabe: "));
        pEingabe.add(eingabe);
       
        pAusgabe.add(new JLabel("Ausgabe: "));
        pAusgabe.add(ausgabe);
        umdrehen.addActionListener(new MyActionListener());
       
       
       
        pUmdrehen.add(umdrehen);
        pUmdrehen.add(isPalindrom);
       
   
        Container contentPane = getContentPane();
        contentPane.setLayout(new BorderLayout());
       
        contentPane.add(pEingabe,BorderLayout.NORTH);
        contentPane.add(pUmdrehen,BorderLayout.CENTER);
        contentPane.add(pAusgabe,BorderLayout.SOUTH);
       
       
       
        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        pack();
        setVisible(true);
       
    }
   
   
    public void setEingabe(String text){
        eingabe.setText(text);
    }

   
    public class MyActionListener implements ActionListener{
        public void actionPerformed(ActionEvent e){
            boolean g = wow.isso();
           
            if(g == true){
                isPalindrom.setText("Es handelt sich um ein Palindrom");
               
            }
            else{
               
                isPalindrom.setText("Es handelt sich nicht um ein Palindrom");
               
                isPalindrom.updateUI();
             
            }
        }
    }

}
 

KonradN

Super-Moderator
Mitarbeiter
Die Fehlerbeschreibung verstehe ich gerade nicht. Evtl. kannst Du das etwas näher beschreiben.

Ein Problem, das aber auffällt: Du erstellst den Palindromprüfer einmalig direkt beim erstellen der UI:
wow = new Palindrompruefer(palindrom);

Das ist also damit der leere String weil ja noch keine Eingabe erfolgt ist. Du willst es ja erst prüfen, wenn der Knopf gedrückt ist, daher musst Du da dann die Eingabe auslesen und auswerten.
 

Mojo7310

Mitglied
Danke für die schnelle Antwort.

Der angesprochene Fehler ist mir gerade auch aufgefallen, sollte aber für das angesprochene Problem erstmal uninteressant sein.

Beim ausführen/klichen auf den Button ändert sich der angezeigte Text "Noch nicht getestet!" nicht sondern verschwindet komplett. Dies ist das Problem. Ich hab jegliche Methode online ausprobiert, aber leider funktioniert nichts.

Ich hoffe so wurde es etwas klarer
 

KonradN

Super-Moderator
Mitarbeiter
Danke für die schnelle Antwort.

Der angesprochene Fehler ist mir gerade auch aufgefallen, sollte aber für das angesprochene Problem erstmal uninteressant sein.

Beim ausführen/klichen auf den Button ändert sich der angezeigte Text "Noch nicht getestet!" nicht sondern verschwindet komplett. Dies ist das Problem. Ich hab jegliche Methode online ausprobiert, aber leider funktioniert nichts.

Ich hoffe so wurde es etwas klarer
Der Code, den Du gezeigt hast, führt aber nicht zu diesem Problem. Es reicht, den Text eines Labels neu zu setzen. (Der updateUI Aufruf wird nicht gebraucht - sollte aber auch kein Problem darstellen.)

Dann wäre die Frage, was Du uns an Code nicht gezeigt hast.
 

KonradN

Super-Moderator
Mitarbeiter
Es muss noch mindestens die Klasse Palindrompruefer geben. Bei BlueJ wäre evtl. noch die Frage, wie Du das Programm startest.

Erstellst Du einfach eine Instanz von PalindromPrueferGUI? Ich kenne mich mit BlueJ nicht wirklich aus - gut möglich, dass BlueJ hier diverse Probleme hat mit den so erzeugten Objekten, wenn man das nicht richtig bedient.
 

Mojo7310

Mitglied
Achso. Ok. Da hatte ich ein Verständnisproblem.

Nachfolgend finden Sie den Quellcode des Palindrompruefer.

Java:
public class Palindrompruefer
{
    private Stack <Character> carsten;
    private String umgedreht, krass;
    
    public Palindrompruefer(String krass)
    {
        // Instanzvariable initialisieren
        carsten = new Stack();
        for(int l = 0 ;l< krass.length();l++){
            carsten.push(krass.charAt(l));
            }
        pruefen();
    }
    public void pruefen(){
        umgedreht = null;
        while(!carsten.isEmpty()){
            umgedreht = umgedreht + carsten.pop();
              
        }
          
    }
    public boolean isso(){
        boolean c = false;
          if(umgedreht == krass){
            c = true;
        }
        else{
            c = false;
        }
         return c;
    }   
}

Ich erstelle eine Instanz der PalindromPrueferGui, was wie folgt aussieht.
1665867606871.png
 

MarvinsDepression

Bekanntes Mitglied
Java:
String palindrom = eingabe.getText();
wow = new Palindrompruefer(palindrom);
Wieso schreibst Du diese Zeilen in den Konstruktor. Wann soll dieser Code ausgeführt werden? Doch erst dann, wenn der Button gedrückt wird.

Diese Zeilen müssen in die Methode actionPerformed()
 

MarvinsDepression

Bekanntes Mitglied
Java:
...
    isPalindrom.setText("Es handelt sich um ein Palindrom");
} else {
    isPalindrom.setText("Es handelt sich nicht um ein Palindrom");
...
sollte doch warscheinlich
Java:
...
    ausgabe.setText("Es handelt sich um ein Palindrom");
} else {
    ausgabe.setText("Es handelt sich nicht um ein Palindrom");
...
heißen??
 

KonradN

Super-Moderator
Mitarbeiter
Ok, das ist ein Bildschirmfoto vom Start. Und wenn Du den Knopf drückst, dann dürfte es so aussehen:
Bildschirm­foto 2022-10-15 um 23.18.15.png

Das ist das Ergebnis von genau Deinem Code - nach Erstellen einer Instanz von der GUI Klasse und Drücken des Umdrehen Knopfes.

Ansonsten ist auch in der Klasse Palindrompruefer an vielen Stellen der Wurm drin.

Angefangen, dass der Parameter krass nicht gemerkt wird. Dann ist die Berechnung des umgedrehten Wortes falsch. (Aus "123" macht er "null321"). Und zuletzt: Instanzen vergleicht man nicht per == sondern mit equals.

Aber das sind halt alles andere Probleme und ich kann kein Problem mit der Aktualisierung der UI erkennen.
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
N Label Schriftart Ändern javafx AWT, Swing, JavaFX & SWT 2
L AWT Ändern der Farbe eines BufferedImage mit Farbähnlichkeit AWT, Swing, JavaFX & SWT 5
R Swing JOptionPane Sprache Ändern AWT, Swing, JavaFX & SWT 4
Tronert JavaFX Fehler beim Ändern der font-weight AWT, Swing, JavaFX & SWT 7
E Swing Miserable Performance beim Ändern der Hintergrundfarbe von JLabels AWT, Swing, JavaFX & SWT 3
I 2D-Grafik Problem beim Ändern der Farbe eine 2d Objekts AWT, Swing, JavaFX & SWT 3
R Ändern Default-Verhalten von JScrollpane in einer JScrollpane AWT, Swing, JavaFX & SWT 1
K JButton Problem beim Schriftfarbe Ändern AWT, Swing, JavaFX & SWT 2
E Swing Verzögerung beim Hinzufügen / Ändern von Swingkomponenten AWT, Swing, JavaFX & SWT 3
L "Fremdes" JPanel von MouseEvent aus Ändern AWT, Swing, JavaFX & SWT 2
philipp Ändern des Inhalts eines Containers nicht möglich AWT, Swing, JavaFX & SWT 2
M Swing Ändern des Themes einer fremden Applikation AWT, Swing, JavaFX & SWT 8
S Swing Threads und das Ändern des Hintergrundes ... AWT, Swing, JavaFX & SWT 2
A Schriftfarbe von jTabbedPane und Button Ändern AWT, Swing, JavaFX & SWT 7
A JTappedPane layout Ändern? AWT, Swing, JavaFX & SWT 7
P JList Index Ändern Problem AWT, Swing, JavaFX & SWT 4
L Dynamisches Ändern der Größe in JPanel mit paint()-Methode AWT, Swing, JavaFX & SWT 8
P Bug in Java? - Problem beim Ändern von Spaltentiteln AWT, Swing, JavaFX & SWT 2
vogella JTable - Hinzufügen von Datensätzen und Ändern von Daten AWT, Swing, JavaFX & SWT 2
T Ändern des Default-Aussehens einer JComboBox AWT, Swing, JavaFX & SWT 3
C Ändern eines JTextFields bei DocumentListener Event AWT, Swing, JavaFX & SWT 2
C Seiteneffekte beim Ändern der Größe des Frames AWT, Swing, JavaFX & SWT 8
G Ändern der Standartschrift vom LookAndFeel AWT, Swing, JavaFX & SWT 4
R "\t" LnF abhängig !? - Ändern? AWT, Swing, JavaFX & SWT 7
T TreeModel: Ändern der Folderanzeige AWT, Swing, JavaFX & SWT 3
P JTextfield Text durch Keylistener verändern AWT, Swing, JavaFX & SWT 4
G Problem mit der Anzeige von jLabel. Unlesbar wenn der Text geändert wird. AWT, Swing, JavaFX & SWT 28
C JToggleButton disabled Text Color AWT, Swing, JavaFX & SWT 11
H JavaFX Label.Text mit bind an DoubleProperty binden AWT, Swing, JavaFX & SWT 3
H JList.setEnabled(false) - Text soll nicht grau sein AWT, Swing, JavaFX & SWT 2
FrittenFritze Text in Flying Saucer selectierbar machen AWT, Swing, JavaFX & SWT 0
raeuchertofu Text von JTextfield und JLabel ändern AWT, Swing, JavaFX & SWT 2
H JavaFX Gedrehter Text auf Canvas (Positionierung) AWT, Swing, JavaFX & SWT 6
F Best-Practise: JTable Text in Zelle zu groß AWT, Swing, JavaFX & SWT 2
I Rich Text drucken AWT, Swing, JavaFX & SWT 0
B Text mit Absatz + OK-Button, der Fenster wieder schließt AWT, Swing, JavaFX & SWT 7
R Text vom Jlabel wird nicht angezeigt AWT, Swing, JavaFX & SWT 2
N Promt Text der Combobox AWT, Swing, JavaFX & SWT 0
M JavaFX javaFX Label-Text wird nicht gesetzt AWT, Swing, JavaFX & SWT 3
sascha-sphw JavaFX ListCell höhe verändert sich beim ändern der Text-Farbe AWT, Swing, JavaFX & SWT 14
N In Textdatei Text anfügen per GUI AWT, Swing, JavaFX & SWT 3
N Textdatei GUI, Text in Textarea anzeigen mehrere Zeilen AWT, Swing, JavaFX & SWT 1
R Swing JTextField nicht-kopierbarer Text AWT, Swing, JavaFX & SWT 1
S Text-Info in der Taskbar anzeigen AWT, Swing, JavaFX & SWT 15
E Warum wird Text im JTextArea erst am Programmende angezeigt ? AWT, Swing, JavaFX & SWT 1
S Swing JLabel Text mit der Zeit ändern AWT, Swing, JavaFX & SWT 1
Hatsi09 JButton text layout AWT, Swing, JavaFX & SWT 9
B Text im Tetfeld in einer TableView darstellen AWT, Swing, JavaFX & SWT 20
C JCheckBox disabled text color AWT, Swing, JavaFX & SWT 9
ralfb1105 JavaFX Wie Text Label in neuem Window von Main Stage setzen? AWT, Swing, JavaFX & SWT 6
CptK Swing Button: ImageIcon unter den Text AWT, Swing, JavaFX & SWT 4
K Swing Text eines Lables in einer Methode ändern AWT, Swing, JavaFX & SWT 13
L JavaFX TableView kein content text ändern AWT, Swing, JavaFX & SWT 2
L JavaFX Anderer Text, wenn kein Platz ist. AWT, Swing, JavaFX & SWT 1
K JavaFX TextInputDialog Button Text ändern AWT, Swing, JavaFX & SWT 1
S 2D-Grafik affine Transformation für Text-Shape AWT, Swing, JavaFX & SWT 0
B JavaFX Text wird nicht angezeigt, kein Fehler AWT, Swing, JavaFX & SWT 2
J Text in ein Textfeld eingeben und speichern AWT, Swing, JavaFX & SWT 27
xYurisha JLabel Text einer geöffneten Gui über eine andere Klasse ändern! AWT, Swing, JavaFX & SWT 3
C Swing Spinner als TableCellEditor - Text zu klein AWT, Swing, JavaFX & SWT 2
H JavaFX - Button und Text - Falsche Darstellung AWT, Swing, JavaFX & SWT 3
DaCrazyJavaExpert Swing Extern den Text eines nicht fetsgelegten Buttons bekommen. AWT, Swing, JavaFX & SWT 12
zhermann FX Label text wird nicht richtig angezeigt AWT, Swing, JavaFX & SWT 12
I JavaFX formatierter Text in PDF speichern AWT, Swing, JavaFX & SWT 4
T JavaFX Text des ProgressIndicators ändern AWT, Swing, JavaFX & SWT 2
E Swing Text verschwindet AWT, Swing, JavaFX & SWT 1
G JavaFX - Während AudioRecording keine Text eingabe TextField möglich AWT, Swing, JavaFX & SWT 6
G Rectangle Breite richtet such an die Breite vom Text AWT, Swing, JavaFX & SWT 1
Sanni94 JavaFX Kann man eine Grafik in einen Text einbinden? AWT, Swing, JavaFX & SWT 2
S JTextArea Text nach oben wandern lassen AWT, Swing, JavaFX & SWT 7
F Icons neben Text in Listview setzen AWT, Swing, JavaFX & SWT 2
K Rich Text FX von TomasMikula AWT, Swing, JavaFX & SWT 0
M Text in einem Label fett setzen AWT, Swing, JavaFX & SWT 4
S JAVAFX HTMLEditor wrap text AWT, Swing, JavaFX & SWT 1
J JavaFX Translation Text/Label AWT, Swing, JavaFX & SWT 2
K Swing JTable mit ImageIcon und Text in einer Zelle AWT, Swing, JavaFX & SWT 1
A JavaFX HTMLEditor in Text umwandeln AWT, Swing, JavaFX & SWT 2
M Swing jButton Text verschwindet AWT, Swing, JavaFX & SWT 2
J JavaFX Bestimmte Zellen im TableView ändern (Farbe und Text) AWT, Swing, JavaFX & SWT 1
2 JLabel - setText ändert den Text nicht AWT, Swing, JavaFX & SWT 4
B Jlabel Text von anderen Klasse aus ändern AWT, Swing, JavaFX & SWT 9
stylegangsta JLabel anzuzeigenden Text zentrieren AWT, Swing, JavaFX & SWT 9
javampir Java FX Text verschwindet nicht AWT, Swing, JavaFX & SWT 9
Tausendsassa Text changed event handler jTextField AWT, Swing, JavaFX & SWT 3
Tom299 JavaFX Text oder Label benutzen AWT, Swing, JavaFX & SWT 4
E To get a color text on the TextArea AWT, Swing, JavaFX & SWT 4
E To get color text on the TextArea AWT, Swing, JavaFX & SWT 5
M Swing JTextPane, Bilder und Text-flow AWT, Swing, JavaFX & SWT 2
Z AWT JLabel setzt kein neuen Text AWT, Swing, JavaFX & SWT 6
D Event Handling Aus einer anderen Klasse heraus einen Text des JLabels ändern. AWT, Swing, JavaFX & SWT 12
T JavaFX Editable Combobox Text-Selektierung nach Trigger AWT, Swing, JavaFX & SWT 4
S JLabel-Text in Methode setzen? AWT, Swing, JavaFX & SWT 2
F JPanel "zeichnet" keinen Text AWT, Swing, JavaFX & SWT 14
U WYSIWYG Text-Editor für JFrames AWT, Swing, JavaFX & SWT 8
C Button Text in JList neue Zeile AWT, Swing, JavaFX & SWT 6
T MausClick soll TExt ändern AWT, Swing, JavaFX & SWT 6
J Text bei Eingabe löschen AWT, Swing, JavaFX & SWT 5
A SWT Auto completion in text box AWT, Swing, JavaFX & SWT 5
C Geloest: JTextfield: Titel automatisch entfernen, sobald Text eingegeben wird AWT, Swing, JavaFX & SWT 1
I Text zur Linie zeichnen AWT, Swing, JavaFX & SWT 1

Ähnliche Java Themen

Neue Themen


Oben