Datentypen If-Statement wird "übersprungen"

Nik243

Mitglied
Erstmal tut mir leid falls das Präfix nicht passt. Aber komm ich mal zur Sache. Ich habe einen Button der wenn man ihr drückt den Text von einem Textfeld in ein String reindrückt. Wenn ich in einer anderen Klasse teste welchen text dieser String hat passiert nichts (obwohl der text identisch mit der Bedingung ist). Aber der String kann in der selben Methode wiedergegeben werden.
Java:
package Pack1;
import javax.swing.JFrame;

public class Frame extends JFrame {
    private static final long serialVersionUID = 1L;

    public static void main(String[] args) {
        new Frame();
    }
    public Frame(){
        setTitle("Frame");
        setDefaultCloseOperation(EXIT_ON_CLOSE);
        setSize(500, 500);
        add(new PanelClass());   
        setVisible(true);
    }
}

Java:
package Pack1;
import javax.swing.JPanel;
import javax.swing.JTextField;
import java.awt.Font;
import javax.swing.JButton;

public class PanelClass extends JPanel {
    private static final long serialVersionUID = 1L;
    public static JTextField textField;
 
    public PanelClass(){
        setLayout(null);
     
        textField = new JTextField();
        textField.setFont(textField.getFont().deriveFont(18f));
        textField.setBounds(212, 39, 110, 50);
        textField.setColumns(10);
        add(textField);
     
        JButton say = new JButton("Sagen:");
        say.setFont(new Font("Tahoma", Font.PLAIN, 20));
        say.setBounds(63, 39, 139, 50);
        say.setFocusable(false);
        say.addActionListener(new Listener());
        add(say);
    }
}

Java:
package Pack1;

import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

public class Listener implements ActionListener {

    public void actionPerformed(ActionEvent e) {
        String s = e.getActionCommand();
     
        if(s=="Sagen:"){
            Klasse.TextText = PanelClass.textField.getText();
            System.out.println("Der Button klappt");
            Klasse k = new Klasse();
        }
    }
}

Java:
package Pack1;
public class Klasse {

    public static String TextText;
 
    public Klasse(){
        System.out.println("Der Text im JTextField:"+ TextText); //zum testen was TextText ist
     
        if(TextText=="Text"){                    //wenn "TextText = Text" passiert nichts
            System.out.println("Fuck yeah");
        }
    } 
}
Ich Hoffe ihr erkennt was ich euch sagen möchte...
EDIT: Ich habe nochmal das Java Projekt hinzugefügt damit ihr es vllt leichter habt.
 

Anhänge

Strings sind "komplexe Datentypen" oder auch "Objekte" und zählen somit nicht zu den primitiven Datentypen.
Solche Objekte vergleicht man nicht mit "==" sondern mit .equals()

Bei dir also:
TextText.equals("Text")
 

Neue Themen


Zurück
Oben