首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >AWT 0“StackOverflowError

AWT 0“StackOverflowError
EN

Stack Overflow用户
提问于 2014-09-24 05:49:12
回答 2查看 7.3K关注 0票数 0

下午,我遇到了一些JFrame代码的问题,这个JFrame是在用户按下"New“时启动的,每当他们这样做时,我就会得到:

代码语言:javascript
复制
Exception in thread "AWT-EventQueue-0" java.lang.StackOverflowError
at frontend.Registration.<init>(Registration.java:36)
at frontend.Registration.<init>(Registration.java:25)
at frontend.Registration.<init>(Registration.java:25)
at frontend.Registration.<init>(Registration.java:25)

使用此代码:

代码语言:javascript
复制
package frontend;

import java.awt.EventQueue;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.sql.SQLException;

import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JTextField;
import javax.swing.border.EmptyBorder;

public class Registration extends JFrame {

/**
 * 
 */
private static final long serialVersionUID = 1L;

private static boolean ranOnce = false;

private JPanel contentPane;
private Registration reg = new Registration();
private JTextField userTF;
private JTextField passTF;
private JTextField emailTF;

private LoginProcess lp = new LoginProcess();
private JLabel error;

/**
 * Create the frame.
 */
public Registration() {
    if (!ranOnce) {
        EventQueue.invokeLater(new Runnable() {
            public void run() {
                try {
                    ranOnce = true;
                    reg = new Registration();
                    reg.setVisible(true);
                } catch (Exception e) {
                    e.printStackTrace();
                }
            }
        });
    }

    setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    setBounds(100, 100, 245, 195);
    setLocationRelativeTo(null);
    contentPane = new JPanel();
    contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));
    setContentPane(contentPane);
    contentPane.setLayout(null);

    JLabel lblUsername = new JLabel("Username:");
    lblUsername.setBounds(10, 11, 75, 14);
    contentPane.add(lblUsername);

    JLabel lblPassword = new JLabel("Password:");
    lblPassword.setBounds(10, 36, 75, 14);
    contentPane.add(lblPassword);

    JLabel lblEmail = new JLabel("Email:");
    lblEmail.setBounds(10, 61, 75, 14);
    contentPane.add(lblEmail);

    userTF = new JTextField();
    userTF.setBounds(95, 8, 130, 20);
    contentPane.add(userTF);
    userTF.setColumns(10);

    passTF = new JTextField();
    passTF.setColumns(10);
    passTF.setBounds(95, 33, 130, 20);
    contentPane.add(passTF);

    emailTF = new JTextField();
    emailTF.setColumns(10);
    emailTF.setBounds(95, 58, 130, 20);
    contentPane.add(emailTF);

    error = new JLabel("Error: Username already in use");
    error.setBounds(10, 120, 215, 14);
    contentPane.add(error);

    JButton regBtn = new JButton("Register");
    regBtn.addActionListener(new ActionListener() {
        public void actionPerformed(ActionEvent arg0) {
            try {
                if (lp.newUser(userTF.getText(), passTF.getText(), emailTF.getText())) {
                    reg.setVisible(false);
                    Main.mainFrame.setVisible(true);
                } else {
                    if (lp.duplicateAccount) {
                        error.setText("lol");
                    }
                }
            } catch (SQLException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }
        }
    });
    regBtn.setBounds(10, 86, 215, 23);
    contentPane.add(regBtn);


}
}

我知道这个错误是由无限循环引起的。但是我有一个布尔值来阻止它无限地运行。这段代码在大约20分钟前就开始工作了,自从我创建代码以来,我还没有更改构造函数的第一部分。

有什么想法吗?谢谢..

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-09-24 05:52:21

在行private Registration reg = new Registration();中创建一个新对象。

您应该在consturctor中创建这个对象。

票数 3
EN

Stack Overflow用户

发布于 2014-09-24 05:51:25

这一行的问题是:

代码语言:javascript
复制
private Registration reg = new Registration();

进入无限循环,然后堆栈溢出。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/26009470

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档