2016-10-10 5 views
-1

Ich bin ein blutiger Anfänger. Ich möchte einen Login-Bildschirm, aber ich stoßen einen Compiler-Fehler:Java - wie bekomme ich den Text von TextField

package passwordmanager; 

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

import javax.swing.*; 


@SuppressWarnings("serial") 
public class Frame extends JFrame 
{ 
    JLabel username; 
    JLabel password; 
    JTextField user; 
    JPasswordField pass; 
    JButton login; 
    public Frame() 
    { 
     //Frame 
     setLayout(null); 
     setLocationRelativeTo(null); 
     setResizable(false); 
     setDefaultCloseOperation(EXIT_ON_CLOSE); 
     setSize(425, 300); 
     setVisible(true); 
     setTitle("Password-Login"); 

     //Label 1 
     username = new JLabel("Benutzernahme:"); 
     username.setBounds(16, 50, 500, 15); 

      //Font 
      Font font1 = new Font("", Font.BOLD, 13); 

     username.setFont(font1);  
     add(username); 

     //Label2 
     password = new JLabel("Passwort:"); 
     password.setBounds(16, 134, 200, 20); 
     password.setFont(font1); 
     add(password); 

     //TextField 
     user = new JTextField(); 
     user.setBounds(16, 76, 350, 30); 
     user.setVisible(true); 
     add(user); 

     //PasswordField 
     pass = new JPasswordField(); 
     pass.setBounds(16, 160, 350, 30); 
     pass.setVisible(true); 
     add(pass); 

     //Button 
     login = new JButton(); 
     login.setBounds(0, 0, 5, 5); 
     add(login); 
    } 

    String myusername = user.getText(); 
    String mypassword = new String(pass.getPassword()); 

    public class Listener implements ActionListener 
    { 

     public void actionPerformed(ActionEvent e) 
     { 
      if(myusername.equalsIgnoreCase("whatever") && mypassword.equalsIgnoreCase("whatever")) 
      { 
       System.out.println("NICE"); 
      } 
     } 
    } 
} 

Eclipse-sagt, dass diese Zeichenfolge

String myusername = user.getText(); 

falsch ist. Weißt du, wie ich das beheben kann?

Vielen Dank im Voraus :)

+2

Bitte senden Sie die ‚blutige‘ Fehlermeldung in voller Höhe;) –

+1

Sie versuchen, die Werte außerhalb der Methode oder Funktion (Accessoren) zu erhalten, die ungültig ist, tut es in Verfahren oder in Konstruktor ... – RohitS

+0

Wenn der Code in Zukunft nicht kompiliert wird und Sie danach fragen, geben Sie den vollständigen Kompilierungsfehler in Ihre Frage selbst ein. Es ist eigentlich ziemlich wichtig. Noch besser - zuerst diese Website auf der Fehlermeldung als wahrscheinlich die Frage wurde zuvor gefragt (wie diese Frage hat, mindestens 10.000 mal). –

Antwort

0

Dieses:

String myusername = user.getText(); 
String mypassword = new String(pass.getPassword()); 

Hat in einer Methode oder Konstruktor sein ... Sie können nicht diesen Code dort platzieren. Sie können dort Variablen deklarieren, aber keine Operationen ausführen.

Dieser Teil:

myusername = user.getText(); 
mypassword = new String(pass.getPassword()); 

in Ihrem Konstruktor sein sollte ... oder eine andere Methode. Sie wollen es wahrscheinlich hier:

public void actionPerformed(ActionEvent e) 
{ 
    myusername = user.getText(); 
    mypassword = new String(pass.getPassword()); 
    if(myusername.equalsIgnoreCase("whatever") && mypassword.equalsIgnoreCase("whatever")) 
    { 
      System.out.println("NICE"); 
    } 
} 
+0

Okay, danke! – chrizator

+0

@ChrisKlein kein Problem! Froh, dass ich helfen konnte! – brso05

Verwandte Themen