Hallo liebes Forum, ich wollte aus der Klasse Hauptgui die Methode loginCheck in die Klasse LoginChecker verschieben. Gesagt getan. Ich habe die Methode markiert und mit Eclipse über Refactor in die neue Klasse verschoben und es wirft mir eine NullPointerException. Nun sitzte ich hier schon eine ganze Zeit dran und hab wahrscheinlich Tomaten auf den Augen. Ich krieg die Parameterübergabe nicht hin. es Hängt in der Klasse HauptGui bei checker.Logincheck(this). diese Methode hat Eclipse konstruiert, aber hier seht selbst:
Ich hoffe einer von euch kann mir sagen, wie genau ich das machen muss.
Vielen Dank im Voraus!
Java:
package main;
import java.awt.EventQueue;
public class HauptGui {
JFrame frame;
private LoginChecker checker;
/**
* Launch the application.
*/
public static void main(String[] args) {
EventQueue.invokeLater(new Runnable() {
public void run() {
try {
HauptGui window = new HauptGui();
window.frame.setVisible(true);
} catch (Exception e) {
e.printStackTrace();
}
}
});
}
/**
* Create the application.
*/
public HauptGui() {
initialize();
checker = new LoginChecker();
}
/**
* Initialize the contents of the frame.
*/
private void initialize() {
frame = new JFrame();
frame.setExtendedState(JFrame.MAXIMIZED_BOTH);// Vollbild
frame.setSize(800, 600); // verkleinert den JFrame beim Verschieben
// automatisch
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setTitle("Database-Manager 3000"); // der Name des Programms
frame.setLocationRelativeTo(null);
// neue Tableiste für alles Tabs
JTabbedPane tabLeiste = new JTabbedPane();
JPanel angestellteTab = new JPanel();
tabLeiste.addTab("Angestellte", angestellteTab);
JPanel produkteTab = new JPanel();
tabLeiste.addTab("Produkte", produkteTab);
JPanel kundenTab = new JPanel();
tabLeiste.addTab("Kunden", kundenTab);
JPanel zuliefererTab = new JPanel();
tabLeiste.addTab("Zulieferer", zuliefererTab);
JPanel einnahmenTab = new JPanel();
tabLeiste.addTab("Einnahmen", einnahmenTab);
JPanel ausgabenTab = new JPanel();
tabLeiste.addTab("Ausgaben", ausgabenTab);
// fügt dem JFrame die Tableiste samt ihrer Tabs hinzu
frame.getContentPane().add(tabLeiste);
// frame.setVisible(true);
checker.loginCheck(this);
}}
Java:
package main;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.JPasswordField;
import javax.swing.JTextField;
/**
* Klasse soll alle Falscheingaben beim Login filtern
* @author Bud
*
*/
public class LoginChecker {
public void LogInChecker(){
}
public void loginCheck(HauptGui hauptGui) {
// login Pop-up
JTextField name = new JTextField();
JPasswordField pwd = new JPasswordField();
Object[] message = { "Bitte Name und Passwort eingeben!\n", name, pwd };
int login = JOptionPane.showConfirmDialog(null, message,
"Database-Manager 3000 - Login", JOptionPane.OK_CANCEL_OPTION,
JOptionPane.QUESTION_MESSAGE);
if (name.getText().length() == 0 || pwd.getPassword().length == 0) {
hauptGui.frame = new JFrame("Database-Manager 3000");
hauptGui.frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
hauptGui.frame.setLocationRelativeTo(null); // benötigt, damit fenster nicht sonstwo aufpoppt
hauptGui.frame.setSize(300, 150);
JPanel warnung = new JPanel(); // pop-up
JLabel hinweistext; // text im warnungs pop-up
hinweistext = new JLabel("Zugriff verweigert!");
hauptGui.frame.add(warnung.add(hinweistext)); // im aktuellen Frame poppt
// eine Warnung auf und in
// dieser der Ausgabetext
hinweistext.setHorizontalAlignment(JLabel.CENTER);
hinweistext.setVerticalAlignment(JLabel.CENTER);
hauptGui.frame.setVisible(true);
}
}
}
Ich hoffe einer von euch kann mir sagen, wie genau ich das machen muss.
Vielen Dank im Voraus!
Zuletzt bearbeitet: