首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >线程"AWT-EventQueue-0“中的代码异常中存在Java错误

线程"AWT-EventQueue-0“中的代码异常中存在Java错误
EN

Stack Overflow用户
提问于 2018-08-16 03:13:40
回答 1查看 2.7K关注 0票数 0

我正在构建一个学生管理器,并且从YouTube学到了所有的东西。现在我被困在这里了。代码在下面给出,错误也在下面给出。

这是代码:

代码语言:javascript
复制
public class RegisterStart extends JFrame {

private JPanel contentPane;
private static JTextField uid, fname, lname, sa;
private static JPasswordField pass;
private static JComboBox sq;

private static Connection Conn;
private static ResultSet Rs;
static Properties prop;
static InputStream input;

/**
 * Launch the application.
 */
public static void main(String[] args) {
    EventQueue.invokeLater(new Runnable() {
        public void run() {
            try 
            {
                RegisterStart frame = new RegisterStart();
                frame.setVisible(true);
                Randomize();

                input = new FileInputStream("/Users/rajat/Programming/EclipseJava/Student Manager/src/config.properties");
                prop.load(input);

                DriverManager.registerDriver(new com.mysql.cj.jdbc.Driver());
                Conn = DriverManager.getConnection(prop.getProperty("database"), prop.getProperty("dbuser"), prop.getProperty("dbpassword"));
                Randomize();
            } 
            catch (Exception e) 
            {
                e.printStackTrace();
            }
        }
    });
}


public RegisterStart() {
    setResizable(false);
    setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    setBounds(100, 100, 600, 440);
    contentPane = new JPanel();
    contentPane.setBackground(new Color(255, 204, 153));
    contentPane.setBorder(null);
    contentPane.setLayout(new BorderLayout(0, 0));
    setContentPane(contentPane);

    JPanel panel = new JPanel();
    panel.setBorder(new EmptyBorder(20, 0, 0, 0));
    panel.setBackground(new Color(255, 204, 153));
    contentPane.add(panel, BorderLayout.NORTH);

    JLabel lblAdminRegistration = new JLabel("ADMIN REGISTRATION");
    lblAdminRegistration.setFont(new Font("Lucida Grande", Font.PLAIN, 20));
    lblAdminRegistration.setBackground(new Color(255, 204, 153));
    panel.add(lblAdminRegistration);

    JPanel panel_1 = new JPanel();
    panel_1.setBackground(new Color(255, 204, 153));
    contentPane.add(panel_1, BorderLayout.CENTER);
    panel_1.setLayout(null);

    JLabel lblNewLabel = new JLabel("USER ID                          :");
    lblNewLabel.setBounds(62, 45, 180, 16);
    panel_1.add(lblNewLabel);

    JLabel lblNewLabel_1 = new JLabel("FIRST NAME                    :");
    lblNewLabel_1.setBounds(62, 83, 180, 16);
    panel_1.add(lblNewLabel_1);

    JLabel lblNewLabel_2 = new JLabel("LAST NAME                     :");
    lblNewLabel_2.setBounds(62, 122, 180, 16);
    panel_1.add(lblNewLabel_2);

    JLabel lblPassworf = new JLabel("PASSWORD                      :");
    lblPassworf.setBounds(62, 164, 180, 16);
    panel_1.add(lblPassworf);

    JLabel lblSecurityQuestions = new JLabel("SECURITY QUESTION        :  ");
    lblSecurityQuestions.setBounds(62, 207, 180, 16);
    panel_1.add(lblSecurityQuestions);

    uid = new JTextField();
    uid.setHorizontalAlignment(SwingConstants.CENTER);
    uid.setBackground(Color.WHITE);
    uid.setEditable(false);
    uid.setBounds(249, 40, 278, 26);
    panel_1.add(uid);
    uid.setColumns(10);

    fname = new JTextField();
    fname.setBounds(249, 78, 278, 26);
    panel_1.add(fname);
    fname.setColumns(10);

    lname = new JTextField();
    lname.setBounds(249, 117, 278, 26);
    panel_1.add(lname);
    lname.setColumns(10);

    sa = new JTextField();
    sa.setBounds(249, 246, 278, 26);
    panel_1.add(sa);
    sa.setColumns(10);

    JLabel lblSecurityAnswer = new JLabel("SECURITY ANSWER            :  ");
    lblSecurityAnswer.setBounds(62, 251, 180, 16);
    panel_1.add(lblSecurityAnswer);

    sq = new JComboBox();
    sq.setModel(new DefaultComboBoxModel(new String[] {"Which is your favorite animal?", "Who is your favorite Actor or Actress?", "Who is your first childhood friend?", "What is your hobby?", "Which is your dream Bike/Car?"}));
    sq.setBounds(249, 203, 283, 27);
    panel_1.add(sq);

    JButton regbutt = new JButton("REGISTER");
    regbutt.addActionListener(new ActionListener() {
        public void actionPerformed(ActionEvent e) {
            Register();
        }
    });
    regbutt.setBounds(257, 300, 117, 29);
    panel_1.add(regbutt);

    pass = new JPasswordField();
    pass.setBounds(254, 159, 273, 26);
    panel_1.add(pass);
}

private static void Randomize ()
{
    Random r = new Random (); 
    int a =  r.nextInt(1000000+1);
    uid.setText(a+"");  
}

private static void Register ()
{
    char[] pswrd = pass.getPassword();
    String pass2 = String.valueOf(pswrd);
    Calendar cal1 = new GregorianCalendar();

    java.util.Date CurrDate = cal1.getTime();
    cal1.setTime(CurrDate);
    cal1.add(Calendar.MONTH, 1);

    java.sql.Date SqlDate3 = new java.sql.Date(CurrDate.getTime());
    SimpleDateFormat DMY = new SimpleDateFormat("yyyy-mm-dd");
    DMY.format(SqlDate3);

    try 
    {
        int x=0;
        System.out.println(x++);
        PreparedStatement ps = Conn.prepareStatement("insert into admin_database values (?,?,?,?,?,?,?)");
        System.out.println(x++);
        ps.setInt(1, Integer.parseInt(uid.getText()));
        System.out.println(x++);
        ps.setString(2, fname.getText());
        System.out.println(x++);
        ps.setString(3, lname.getText());
        System.out.println(x++);
        ps.setString(4, pswrd.toString());
        System.out.println(x++);
        ps.setString(5, sq.getSelectedItem().toString());
        System.out.println(x++);
        ps.setString(6, sa.getText());
        System.out.println(x++);
        ps.setDate(7, SqlDate3);
        System.out.println(x++);

        int i = ps.executeUpdate();
        JOptionPane.showMessageDialog(null, "Thanks for Registering your UserID is "+uid.getText());
    } 
    catch (SQLException e) 
    {
        e.printStackTrace();
    }
}
}

这是我得到的错误:

frames.RegisterStart$1.run(RegisterStart.java:58) at java.desktop/java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:313) at java.desktop/java.awt.EventQueue.dispatchEventImpl(EventQueue.java:770) at java.desktop/java.awt.EventQueue.access$600(EventQueue.java:97) at java.desktop/java.awt.EventQueue$4.run(EventQueue.java:721) at java.ktop/java的

java.lang.NullPointerException。java.base/java.security.AccessController.doPrivileged(Native方法的awt.EventQueue$4.run(EventQueue.java:715) at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:87) at java.desktop/java.awt.EventQueue.dispatchEvent(EventQueue.java:740) at java.desktop/java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:203) at java.desktop/java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:124)at java.desktop/java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:113) at java.desktop/java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:109) at java.desktop/java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101) at java.desktop/java.awt.EventDispatchThread.run(EventDispatchThread.java:90) 0线程"AWT-EventQueue-0“java.lang.NullPointerException at frames.RegisterStart.Register(RegisterStart.java:190)中的异常在frames.RegisterStart.access$2(RegisterStart.java:171)在frames.RegisterStart$2.actionPerformed(RegisterStart.java:153)在java.desktop/javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:1967)在java.desktop/javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2308)在java.desktop/javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:405)在java.desktop/javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:262)at java.desktop/javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:270) at java.desktop/java.awt.Component.processMouseEvent(Component.java:6589) at java.desktop/javax.swing.JComponent.processMouseEvent(JComponent.java:3342) at java.desktop/java.awt.Component.processEvent(Component.java:6354) at java.desktop/java.awt.Container.processEvent(Container.java:2261) at java.ktop/java.awt.Component.dispatchEventImpl(Component.java:4966)在java.desktop/java.awt.Container.dispatchEventImpl(Container.java:2319)在java.desktop/java.awt.Component.dispatchEvent(Component.java:4798)在java.desktop/java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4914)在java.desktop/java.awt.LightweightDispatcher.processMouseEvent(Container.java:4543)在java.desktop/java.awt.LightweightDispatcher.dispatchEvent(Container.java:4484)在java.desktop/java.awt.Container.dispatchEventImpl(Container.java:2305) at java.desktop/java.awt.Window.dispatchEventImpl(Window.java:2772) at java.desktop/java.awt.Component.dispatchEvent(Component.java:4798) at java.desktop/java.awt.EventQueue.dispatchEventImpl(EventQueue.java:772) at java.desktop/java.awt.EventQueue.access$600(EventQueue.java:97) at java.ktop/java.awt.EventQueue$4.run(EventQueue.java:721) at java.desktop/java.awt.EventQueue$4.run(EventQueue.java:715) at java.base/java.security.AccessController.doPrivileged(Native Method) at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:87) at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:97) at java.desktop/java.awt.EventQueue$5.run(EventQueue.java:745) at java.desktop/java.awt.EventQueue$5.run(EventQueue.java:743)在java.base/java.security.AccessController.doPrivileged(Native方法)在java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:87)在java.desktop/java.awt.EventQueue.dispatchEvent(EventQueue.java:742)在java.desktop/java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:203)在java.desktop/java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:124) at java.desktop/java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:113) at java.desktop/java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:109) at java.desktop/java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101) at java.desktop/java.awt.EventDispatchThread.run(EventDispatchThread.java:90) 2018-08-15 22:28:31.367 java699:58449查找:未处理的异常'JavaNativeException‘在+LULookupDefinitionModule _focusTermUsingQueue:handler:

中捕获

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-08-16 11:37:07

我解决了我的问题。我刚刚将Properties prop;更改为Properties prop = new Properties();,如下所示

代码语言:javascript
复制
    public class RegisterStart extends JFrame {

    private JPanel contentPane;
    private static JTextField uid, fname, lname, sa;
    private static JPasswordField pass;
    private static JComboBox sq;

    private static Connection Conn;
    private static ResultSet Rs;
    static Properties prop = new Properties();
    static InputStream input = null;

    /**
     * Launch the application.
     */
    public static void main(String[] args) {
        EventQueue.invokeLater(new Runnable() {
            public void run() {
                try 
                {
                    RegisterStart frame = new RegisterStart();
                    frame.setVisible(true);
                    Randomize();

                    input = new FileInputStream("/Users/rajat/Programming/EclipseJava/Student Manager/src/config.properties");
                    prop.load(input);

                    DriverManager.registerDriver(new com.mysql.cj.jdbc.Driver());
                    Conn = DriverManager.getConnection(prop.getProperty("database"), prop.getProperty("dbuser"), prop.getProperty("dbpassword"));
                    Randomize();
                } 
                catch (Exception e) 
                {
                    e.printStackTrace();
                }
            }
        });
    }


    public RegisterStart() {
        setResizable(false);
        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        setBounds(100, 100, 600, 440);
        contentPane = new JPanel();
        contentPane.setBackground(new Color(255, 204, 153));
        contentPane.setBorder(null);
        contentPane.setLayout(new BorderLayout(0, 0));
        setContentPane(contentPane);

        JPanel panel = new JPanel();
        panel.setBorder(new EmptyBorder(20, 0, 0, 0));
        panel.setBackground(new Color(255, 204, 153));
        contentPane.add(panel, BorderLayout.NORTH);

        JLabel lblAdminRegistration = new JLabel("ADMIN REGISTRATION");
        lblAdminRegistration.setFont(new Font("Lucida Grande", Font.PLAIN, 20));
        lblAdminRegistration.setBackground(new Color(255, 204, 153));
        panel.add(lblAdminRegistration);

        JPanel panel_1 = new JPanel();
        panel_1.setBackground(new Color(255, 204, 153));
        contentPane.add(panel_1, BorderLayout.CENTER);
        panel_1.setLayout(null);

        JLabel lblNewLabel = new JLabel("USER ID                          :");
        lblNewLabel.setBounds(62, 45, 180, 16);
        panel_1.add(lblNewLabel);

        JLabel lblNewLabel_1 = new JLabel("FIRST NAME                    :");
        lblNewLabel_1.setBounds(62, 83, 180, 16);
        panel_1.add(lblNewLabel_1);

        JLabel lblNewLabel_2 = new JLabel("LAST NAME                     :");
        lblNewLabel_2.setBounds(62, 122, 180, 16);
        panel_1.add(lblNewLabel_2);

        JLabel lblPassworf = new JLabel("PASSWORD                      :");
        lblPassworf.setBounds(62, 164, 180, 16);
        panel_1.add(lblPassworf);

        JLabel lblSecurityQuestions = new JLabel("SECURITY QUESTION        :  ");
        lblSecurityQuestions.setBounds(62, 207, 180, 16);
        panel_1.add(lblSecurityQuestions);

        uid = new JTextField();
        uid.setHorizontalAlignment(SwingConstants.CENTER);
        uid.setBackground(Color.WHITE);
        uid.setEditable(false);
        uid.setBounds(249, 40, 278, 26);
        panel_1.add(uid);
        uid.setColumns(10);

        fname = new JTextField();
        fname.setBounds(249, 78, 278, 26);
        panel_1.add(fname);
        fname.setColumns(10);

        lname = new JTextField();
        lname.setBounds(249, 117, 278, 26);
        panel_1.add(lname);
        lname.setColumns(10);

        sa = new JTextField();
        sa.setBounds(249, 246, 278, 26);
        panel_1.add(sa);
        sa.setColumns(10);

        JLabel lblSecurityAnswer = new JLabel("SECURITY ANSWER            :  ");
        lblSecurityAnswer.setBounds(62, 251, 180, 16);
        panel_1.add(lblSecurityAnswer);

        sq = new JComboBox();
        sq.setModel(new DefaultComboBoxModel(new String[] {"Which is your favorite animal?", "Who is your favorite Actor or Actress?", "Who is your first childhood friend?", "What is your hobby?", "Which is your dream Bike/Car?"}));
        sq.setBounds(249, 203, 283, 27);
        panel_1.add(sq);

        JButton regbutt = new JButton("REGISTER");
        regbutt.addActionListener(new ActionListener() {
            public void actionPerformed(ActionEvent e) {
                Register();
            }
        });
        regbutt.setBounds(257, 300, 117, 29);
        panel_1.add(regbutt);

        pass = new JPasswordField();
        pass.setBounds(254, 159, 273, 26);
        panel_1.add(pass);
    }

    private static void Randomize ()
    {
        Random r = new Random (); 
        int a =  r.nextInt(1000000+1);
        uid.setText(a+"");  
    }

    private static void Register ()
    {
        char[] pswrd = pass.getPassword();
        String pass2 = String.valueOf(pswrd);
        Calendar cal1 = new GregorianCalendar();

        java.util.Date CurrDate = cal1.getTime();
        cal1.setTime(CurrDate);
        cal1.add(Calendar.MONTH, 1);

        java.sql.Date SqlDate3 = new java.sql.Date(CurrDate.getTime());
        SimpleDateFormat DMY = new SimpleDateFormat("yyyy-mm-dd");
        DMY.format(SqlDate3);

        try 
        {
            PreparedStatement ps = Conn.prepareStatement("insert into admin_database values (?,?,?,?,?,?,?)");
            ps.setInt(1, Integer.parseInt(uid.getText()));
            ps.setString(2, fname.getText());
            ps.setString(3, lname.getText());
            ps.setString(4, pswrd.toString());
            ps.setString(5, sq.getSelectedItem().toString());
            ps.setString(6, sa.getText());
            ps.setDate(7, SqlDate3);

            int i = ps.executeUpdate();
            JOptionPane.showMessageDialog(null, "Thanks for Registering your UserID is "+uid.getText());
        } 
        catch (SQLException e) 
        {
            e.printStackTrace();
        }
    }
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51865004

复制
相关文章

相似问题

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