2012-04-05 10 views
0

Ich dachte, es so etwas wie dieses war (aber stellt sich heraus, es hat nichts tun!):Wie aus einer JTextField zu einem JLabel setText ein JButton „Enter“ nach dem Klicken

public void actionPerformed(ActionEvent e) { 

    String labelID = e.getActionCommand(); 
    JTextField EnterName = new JTextField(); 
    JLabel NameINLabel = new JLabel(); 
    String random = new String(); 
    random = EnterName.getText(); 

    if (labelID == "Enter Name"){ 
     NameINLabel.setText(random); 
    } 
} 

Meine Taste funktioniert perfekt damit ist nichts falsch. Aber wenn ich auf den Button "Name eingeben" klicke, passiert dem jlabel nichts. HELP PLZ

+1

Warum werden JTextField und JLabel im Ereignishandler deklariert? Versuchen Sie, sie sichtbar zu machen, wenn Sie auf den Button klicken? Mein aufrichtiger Zweifel ist: Funktioniert es? – vaisakh

+2

Es gibt mehrere Probleme mit Ihrem Code: 1. Sie fügen JTextField und JLabel niemals einem Inhaltsbereich hinzu, sodass sie nie sichtbar sind. 2. Sie erstellen EnterName mit der leeren Zeichenfolge als Text, sodass EnterName.getText() immer die leere Zeichenfolge zurückgibt. 3. Sie sollten nicht == verwenden, um den Inhalt von Strings zu vergleichen. –

+0

1) Für eine bessere Hilfe, post ein [SSCCE] (http://sscce.org/). 2) Bitte lerne gängige [Java Namenskonventionen] (http://java.sun.com/docs/books/jls/second_edition/html/names.doc.html#73307) (speziell den für die Namen verwendeten Fall) für die Klasse , Methoden- und Attributnamen und verwende sie konsistent. –

Antwort

0

Ich stimme mit vaisakh überein, Sie müssen Ihre Komponenten außerhalb der Event-Handler deklarieren. Sie müssen sie auch dem Inhaltsbereich hinzufügen. Um den Inhalt der Zeichenfolge zu vergleichen, sollten Sie die Methoden .equals("") oder compareTo("") verwenden.

+0

Ich habe Komponenten außerhalb des Handlers deklariert. Ich habe sie dem Inhaltsbereich hinzugefügt. Ich habe diesen Teil einfach nicht gezeigt. – user1315999

Verwandte Themen