0

我正在尝试创建一个专业的登录/注册表单,但此刻我的代码不起作用:它将用于我通过 NetBeans 创建的 FPL 论坛。

对此主题的任何帮助将不胜感激。

    package fplforum;

import java.awt.BorderLayout;
import java.awt.FlowLayout;
import java.awt.Font;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.io.IOException;

import javax.swing.BorderFactory;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.JPanel;

public class RegistrationForm extends JFrame implements ActionListener {
    public RegistrationPanel panel;
    public JButton submit, cancel;
    public boolean done;
    public Object UITools;

    public RegistrationForm() {
        JPanel main = new JPanel();
        main.setLayout(new BorderLayout());
        main.setBorder(BorderFactory.createEmptyBorder(5, 10, 5, 10));

        JLabel label = new JLabel("Java CoG Kit Registration");
        label.setFont(Font.decode("Arial-bold-18"));
        label.setBorder(BorderFactory.createEmptyBorder(5, 10, 20, 10));

        main.add(label, BorderLayout.NORTH);

        panel = new RegistrationPanel();
        //panel.getReregister().addActionListener(this);
        //main.add(panel, BorderLayout.CENTER);
        setTitle("Java CoG Kit Registration Form");

        JPanel buttons = new JPanel();
        buttons.setLayout(new FlowLayout());

        submit = new JButton("Submit");
        submit.addActionListener(this);
        buttons.add(submit);

        //submit.setEnabled(panel.getReregister().isSelected());

        cancel = new JButton("Cancel");
        cancel.addActionListener(this);
        buttons.add(cancel);

        main.add(buttons, BorderLayout.SOUTH);

        getContentPane().add(main);
    }

        @Override
    public void actionPerformed(ActionEvent e) {
        if (e.getSource() == submit) {
            try {
                panel.submit(false);
                JOptionPane.showMessageDialog(this, "Thank you for registering the Java CoG Kit",
                        "Registration successful", JOptionPane.INFORMATION_MESSAGE);
                done();
            }
            catch (IOException e1) {
                JOptionPane.showMessageDialog(this, "Could not submit registration information: "
                        + e.toString(), "Error", JOptionPane.ERROR_MESSAGE);
            }
        }
        else if (e.getSource() == cancel) {
            done();
        }
        else {
            //must be the don't send switch
            submit.setEnabled(panel.getReregister().isSelected());
        }
    }

    private void done() {
        done = true;
        synchronized (this) {
            notify();
        }
    }

    public void run() {
        setSize(500, 380);
        UITools.left(null, this);
        setVisible(true);
        try {
            synchronized (this) {
                while (!done) {
                    wait();
                }
            }
        }
        catch (InterruptedException e) {
            JOptionPane.showMessageDialog(this, "The main thread was interrupted", "Error",
                    JOptionPane.ERROR_MESSAGE);
        }
        setVisible(false);
        dispose();
    }

    public static void main(String[] args) {
        //RegistrationFrame frame = new RegistrationFrame();
        //frame.run();
        //System.exit(0);
    }

    private static class RegistrationPanel {

        public RegistrationPanel() {
        }

        private Object getReregister() {
            throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates.
        }

        private void submit(boolean b) {
            throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates.
        }
    }
}

它会编译但没有任何反应,我该如何解决?

4

1 回答 1

1

如果它编译并执行,那么它就可以工作。它不像你希望的那样工作,但它确实有效。你有一个空main方法,所以它不会做任何事情。这是您的主要方法:

public static void main(String[] args) {
    //RegistrationFrame frame = new RegistrationFrame();
    //frame.run();
    //System.exit(0);
}

所有的行都被注释掉了,所以没有要执行的操作。//在你的行的开头取出来采取一些行动。另外,据我所知,您没有RegistrationFrame class, 您可能想要实例化RegistrationForm。还有,你为什么打电话System.exit(0)

于 2015-12-21T15:45:40.250 回答