Ich bekomme immer eine StackOverflowError
und ich kann nicht herausfinden, warum. Dies ist die genaue FehlermeldungWas ist die Ursache dieses StackOverflowError?
java.lang.StackOverFlowError: null(in sun.awt.Win32GraphicsConfig)
Hier ist mein Code:
import java.lang.*;
import javax.swing.*;
import java.awt.*;
import java.awt.Component.*;
import java.awt.event.ActionListener;
import java.awt.event.ActionEvent;
public class Sales_Center {
JFrame mainf, loginf, newuserf;
JButton submit, login, newuser;
JPanel mainp, loginp, newuserp;
JLabel userlbl, passlbl;
JTextField usertxt, passtxt;
public static void main(String[] args) {
rungui();
}
public Sales_Center() {
loginf = new JFrame("Login");
loginf.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
loginf.setSize(new Dimension(275, 150));
loginp = new JPanel();
loginp.setLayout(new GridLayout(0, 2, 10, 5));
loginp.setBorder(BorderFactory.createEmptyBorder(10, 10, 10, 10));
loginp.setPreferredSize(new Dimension(250, 400));
userlbl = new JLabel("Username: ");
loginp.add(userlbl);
usertxt = new JTextField(5);
loginp.add(usertxt);
passlbl = new JLabel("Password: ");
loginp.add(passlbl);
passtxt = new JTextField(5);
loginp.add(passtxt);
login = new JButton("Login");
login.addActionListener(new loginb());
loginp.add(login);
newuser = new JButton("Creat Profile");
newuser.addActionListener(new newuserb());
loginp.add(newuser);
//loginf.pack();
loginf.setVisible(true);
loginf.setContentPane(loginp);
}
public static void rungui() {
JFrame.setDefaultLookAndFeelDecorated(false);
Sales_Center gui = new Sales_Center();
}
}
class loginb extends Sales_Center implements ActionListener {
String user, pass;
public void actionPerformed(ActionEvent ae) {
pass = passtxt.getText();
user = usertxt.getText();
Login login = new Login(pass, user);
}
}
class newuserb extends Sales_Center implements ActionListener {
String user, pass;
public void actionPerformed(ActionEvent ae) {
pass = passtxt.getText();
user = usertxt.getText();
NewProfile newprofile = new NewProfile(user, pass);
}
}
Was ist die Ursache für den Fehler?
Jedes 'Sales_Center' erstellt ein' loginb', das ein 'Sales_Center' ist, das dann ein anderes' loginb' erstellt, das ein anderes erstellt, ... –
Warum erweitern sowohl loginb als auch newuserb Sales_Center? Das macht keinen Sinn. Hinweis: Sie sollten den Konventionen folgen und alle Klassen benennen, die mit einem Großbuchstaben beginnen und keine Unterstriche verwenden. – FredK
Ihre Namenskonvention ist auch Banane. Bitte sei konsistent mit der Benennung. –