Hallo alle zusammen,
ich bin gerade im Rahmen eines Projektes für mein Wirtschaftsinformatikstudium etwas mit Java rumzuprogrammieren...
Dabei bin ich jetzt auf folgendes Problem gestossen.
Das Szenario ist wie folgt:
Es dreht sich um den Loginscreen des Programmes, es gibt also ein JField für den Benutzernamen und ein JPasswordField für das Passwort sowie einen Button zum einloggen.
Das ganze steckt in einer Methode, die ein JPanel zurückliefert, welches in einer anderen Klasse in ein JTabbedPane eingefügt wird.
Der Button zum einloggen ist als eigene Klasse definiert:
Leider kann ich jetzt mit der Methode readPassword (aufgerufen durch die methode actionPerfomed in der Klasse Loginbutton) nicht das Passwort auslesen bzw nicht den aktuellen Wert auslesen. Wenn ich das JPasswordField bereits mit einem Wert initialisiere, liest die Methode immer den initialisierten Wert aus, auch wenn was andres im Feld steht.
Wahrscheinlich liegt das daran, dass ich das JPasswordField mit static deklariert habe.
Wenn ich static jedoch entferne, bekomme ich den kompilierungsfehler "Cannot make a static reference to the non-static dield enterpw"
Was kann ich tun?! Ich bin momentan wirklich mit meinem Latein am Ende.. kann mir jemand von euch weiterhelfen? Zumindest mit einer Idee?
Danke schoneinmal im Vorraus,
viele Grüsse,
Benny
ich bin gerade im Rahmen eines Projektes für mein Wirtschaftsinformatikstudium etwas mit Java rumzuprogrammieren...
Dabei bin ich jetzt auf folgendes Problem gestossen.
Das Szenario ist wie folgt:
Es dreht sich um den Loginscreen des Programmes, es gibt also ein JField für den Benutzernamen und ein JPasswordField für das Passwort sowie einen Button zum einloggen.
Das ganze steckt in einer Methode, die ein JPanel zurückliefert, welches in einer anderen Klasse in ein JTabbedPane eingefügt wird.
Code:
public class Login extends GUI {
static JPasswordField enterpw = new JPasswordField(20);
public static JPanel loginpanel() {
[...]
JPasswordField enterpw = new JPasswordField(20);
enterpw.setFont(new Font("Verdana", Font.BOLD, 13));
c.gridx = 3;
loginpanel.add(enterpw,c);
Loginbutton login = new Loginbutton();
login.setText(" Login!");
URL loginbuttonurl = Login.class.getResource( "/images/login.gif" );
final Icon loginbuttonicon = new ImageIcon(loginbuttonurl);
login.setIcon(loginbuttonicon);
login.setFont(new Font("Verdana", Font.BOLD, 13));
login.addActionListener(login);
[...]
}
public static void readPassword() {
System.out.println(enterpw.getText());
}
Der Button zum einloggen ist als eigene Klasse definiert:
Code:
class Loginbutton extends JButton implements ActionListener {
public void actionPerformed(ActionEvent AE) {
Login.readPassword();
}
static String verschluesseln(String passwordToEncrypt) {
[...]
}
public static String bytesToHex(byte[] b) {
[...]
}
}
Leider kann ich jetzt mit der Methode readPassword (aufgerufen durch die methode actionPerfomed in der Klasse Loginbutton) nicht das Passwort auslesen bzw nicht den aktuellen Wert auslesen. Wenn ich das JPasswordField bereits mit einem Wert initialisiere, liest die Methode immer den initialisierten Wert aus, auch wenn was andres im Feld steht.
Wahrscheinlich liegt das daran, dass ich das JPasswordField mit static deklariert habe.
Wenn ich static jedoch entferne, bekomme ich den kompilierungsfehler "Cannot make a static reference to the non-static dield enterpw"
Was kann ich tun?! Ich bin momentan wirklich mit meinem Latein am Ende.. kann mir jemand von euch weiterhelfen? Zumindest mit einer Idee?
Danke schoneinmal im Vorraus,
viele Grüsse,
Benny