Button´s Visible via Ja/Nein eingabe

Dicate_89

Mitglied
Hallo Leute,
ich würde gerne, wenn ich im Textfield "Ja" oder "Nein" eingebe einen Button anzeigen/ nicht anzeigen lassen. Leider komme ich hier nicht weiter.??

[JAVA=0]public class Test implements ActionListener {

static String eingabe;
static JButton button, button2;
static JFrame frame;

public static void main(String[] args)
{
new Test ().start();

}


public void start()
{
frame = new JFrame();
frame.setBounds(220,200,520,500);



JTextField field = new JTextField(eingabe);
field.setBounds(230,20,100,25);
frame.getContentPane().add( field );

button = new JButton();
button.setBounds(240,50,75,75);
button.addActionListener (this);
frame.getContentPane().add( button );

button2 = new JButton("Ok");
button2.setBounds(330,50,80,40);
button2.addActionListener (this);
frame.getContentPane().add( button2 );


frame.setLayout(null);
frame.setVisible (true);



}
public void actionPerformed (ActionEvent e)
{

if (e.getSource() == button2)
{

sichtbar ();
unsichtbar ();





}}

public void sichtbar ()
{


eingabe ="";

if (eingabe.equals("Ja"));

{
button.setVisible(true);
}

}

public void unsichtbar ()
{

eingabe ="";

if (eingabe.equals("Nein"));

{
button.setVisible(false);
}


}
}[/code]
 
an der Problematik knabber ich auch grad, Überlegung wäre :

Java:
while(Aktualisierung des JTextField ggf durch Texteingabe + Enter)
{

if(JTextField == "Ja")
{
 
button1.setVisible(true);

}
if(JTextField == "Nein")
{

button2.setVisible(true);

}
else ...

}

Wäre schön wenn du eine Lösung findest , diese zu teilen, danke
 

njans

Top Contributor
Also man kann button.setVisible(false);
Nebenbei: Gui Elemente gehören auf den EDT, die sollte man NICHT in einem neuen Thread ausführen :)

Java:
if(JTextField == "Ja")
{
wenn, dann muss man da mit [JAPI]JTextField#getText()[/JAPI] arbeiten und Strings vergleicht man mit equals(), also
Code:
myTextField.getText().equals("Ja");
Und noch als Anmerkung: Null-Layout ist böse ^^
Lieber eine Kombination von Layoutmanagern verwenden.
 
Zuletzt bearbeitet von einem Moderator:

Basti4231

Bekanntes Mitglied
@njans
Strings vergleicht man mit equals()

Seit Java 1.7. ist es ebenso möglich Strings mit dem Vergleichsoperator == zu vergleichen. Die Methode equals(Object o1, Object o2) wird also überflüssig :p Trotzdem sollte man natürlich wissen, was sie bedeutet.

Gruß Basti
 

Basti4231

Bekanntes Mitglied
Ich glaube du bist nicht mehr ganz aktuell. Du kannst dazu folgenden Code mit der Java Version 1.7 testen:
Java:
String s1 = "hallo";
	 String s2 = "hallo";
	    if (s1==s2)
		System.out.println("passt");
	    else
		System.out.println("passt nicht");
 
G

Gast2

Gast
Nein, da liegst du falsch, sorry.
Der selbe Code würde so auch mit Java 1.6 oder älter funktionieren weil die hartkodierten Strings im Stringpool liegen und die Referenzen in dem Fall wirklich identisch sind ;)

Folgendes funktioniert auch unter Java 1.7 nicht wenn man
Code:
Hallo
eingibt:
Java:
Scanner sc = new Scanner(System.in);
String line = sc.nextLine();

System.out.println(line == "Hallo");
System.out.println(line.equals("Hallo"));
 
Zuletzt bearbeitet von einem Moderator:
W

Wishmaster51

Gast
Ich glaube du bist nicht mehr ganz aktuell. Du kannst dazu folgenden Code mit der Java Version 1.7 testen:
Das funktioniert, wie von EikeB erklärt, nicht, das einzige, was sich in Java 7 in dieser Richtung geändert hat, ist Strings in switch Statements, das hat aber mit der Art und Weise des "==" Operators nichts zu tun.

Nachtrag: Es wäre im genannten Beispiel also auch folgendes machbar:
Java:
switch (field.getText())
{
    case "Ja":
        button1.setVisible(true);
        break;
    case "Nein":
        button2.setVisible(true);
        break;
}
 
Zuletzt bearbeitet von einem Moderator:

Basti4231

Bekanntes Mitglied
Ah ok, sehr gut, dass du mich aufklärst!!

Woran liegt das nun? Und übrigens, Scanner hat keine readLine() Methode^^ Vielleicht meinst du next()?

Gruß Basti
 

andiv

Bekanntes Mitglied
== vergleicht auch in 1.7 immernoch nur die Referenzen. Strings muss man also auch weiterhin mit equals vergleichen.

Java:
public class Test {
	public static void main(String[] args) {
		String s1 = "hallo";
		String s2 = new String("hallo");
		if (s1==s2)
			System.out.println("passt");
		else
			System.out.println("passt nicht");
	}
}

ergibt mit 1.7 die Ausgabe "passt nicht"!
 
G

Gast2

Gast
Ich meine nextLine() und habs auch schon reineditiert.
Die Antwort auf deine Frage steht auch schon in meinem Post. Java verwaltet intern einen Stringpool.
 

ARadauer

Top Contributor
@njans


Seit Java 1.7. ist es ebenso möglich Strings mit dem Vergleichsoperator == zu vergleichen. Die Methode equals(Object o1, Object o2) wird also überflüssig :p Trotzdem sollte man natürlich wissen, was sie bedeutet.

Gruß Basti

WFT! OMG stell dir mal vor sie würden so ein grundlegendes Verhalten ändern! Das würde zu Millionen von Bugs in bestehenden Anwendungen führen...
 

njans

Top Contributor
Woran liegt das nun?

Das liegt daran, dass Java einen String Constant Pool hat. In diesem werden Strings zwischengespeichert. Somit sparrt Java speicher und gewinnt performance. Die Aufnahme von Strings in den CP passiert aber nicht sofort bei jedem neuen String. Daher kannst du Glück haben, dass der Referenzabgleich erfolgreich ist aber eben nicht sicher sein. Daher wird equals genommen, da es die Zeichen auf Gleichheit überprüft.

Was du vielleicht im Kopf hattest, ist, dass Switches in J7 mit String funktionieren.
 
H

hüteüberhüte

Gast
== prüft auf referenzielle Gleichheit (Identität zweier Objekte), equals prüft, wenn es korrekt implementiert wurde, auf inhaltliche Gleichheit. Bei String wurde equals korrekt implementiert, die einzelnen Zeichen werden miteinander verglichen. Eine Methode equals(Object o1, Object o2) gibt es in Object außerdem nicht

Edit: Das Beispiel oben kann funktionieren, wenn sich beide Variablen auf dasselbe Objekt beziehen. String-Literale (in "-Zeichen) erstellen nicht immer ein neues String-Objekt, sondern es wird stattdessen ggf. ein schon vorhandenes aus dem String-Pool genommen

Aber das hat alles mehr oder weniger nichts mit dem Thema zu tun^^

Würde einen Listener auf das JTextField registrieren und bei Benutzereingabe die entsprechenden Buttons hinzufügen/entfernen und sichtbar/unsichtbar machen :)

Edit2:
 
Zuletzt bearbeitet von einem Moderator:
Ähnliche Java Themen
  Titel Forum Antworten Datum
W The type Long is not visible HashMap Java Basics - Anfänger-Themen 4
J JTextArea visible ohne Text Java Basics - Anfänger-Themen 3
F Kontruktor nicht sichtbar/visible ... Java Basics - Anfänger-Themen 6
M Offenes JFrame auf visible setzen? Java Basics - Anfänger-Themen 6
T this method.is not visible Java Basics - Anfänger-Themen 3
M Problem beim ändern von Komponenten während Visible(true) Java Basics - Anfänger-Themen 4
T GUI, JMenuBar Fehler: The field menuBar is not visible Java Basics - Anfänger-Themen 7
sserio Endlosschleife ja nein? Java Basics - Anfänger-Themen 13
T jOptionPane zum schließen von Fenster, wie "Ja" und "Nein" anstatt Yes und No Java Basics - Anfänger-Themen 2
K FYI: Reguläre Ausdrücke nutzen ja/nein Java Basics - Anfänger-Themen 2
C Brauche dringend Hilfe. Umfrage mit ja und nein in Java erstellen? Java Basics - Anfänger-Themen 12
R Primzahl ja/nein - besserer Code möglich? Java Basics - Anfänger-Themen 2
F Ja Nein Abfrage und andere Probleme Java Basics - Anfänger-Themen 5
X Ja nein abfrage? Java Basics - Anfänger-Themen 9
kaoZ Stil ? - ....Nein nicht das Ende des Besens ^^ Java Basics - Anfänger-Themen 11
Ksanatos Ja nein verzweigung. Java Basics - Anfänger-Themen 22
N Anfrage- wiederholen Ja oder Nein Java Basics - Anfänger-Themen 12
I wie definiere ich ja oder nein für true or false Java Basics - Anfänger-Themen 7
M Kompilieren - Eclipse ja, Konsole nein Java Basics - Anfänger-Themen 15
A Englisch ja oder nein Java Basics - Anfänger-Themen 19
multiholle OOP MVC -> Ja/Nein? Java Basics - Anfänger-Themen 7
O import ja....extends nein Java Basics - Anfänger-Themen 5
Kasoki Compilen von Java Scripts (Nein kein JavaScript xD) Java Basics - Anfänger-Themen 13
V Return - JA/NEIN - Parameterübergabe Array (Referenz) Java Basics - Anfänger-Themen 7
G ZUfällig "ja" "nein" oder "vielleic Java Basics - Anfänger-Themen 7
I Dialog - "Ja" / "Nein" abfangen Java Basics - Anfänger-Themen 3
M JSP: Problem bei Link ja oder nein? Java Basics - Anfänger-Themen 2
D Komponente setvisible ja-nein Java Basics - Anfänger-Themen 4
M Datei vorhanden ja/nein? Java Basics - Anfänger-Themen 9
M Parameter existiert ja/nein - prüfen? Java Basics - Anfänger-Themen 12

Ähnliche Java Themen

Neue Themen


Oben