我正在尝试创建一个专业的登录/注册表单,此时我的代码不起作用:它将用于我通过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.
}
}
}
它会编译但没有任何反应,我该如何解决?
答案 0 :(得分:1)
如果它编译并执行,那么它可以工作。它不起作用,因为你希望它工作,但它肯定有效。您有一个空的main
方法,因此它不会执行任何操作。这是您的主要方法:
public static void main(String[] args) {
//RegistrationFrame frame = new RegistrationFrame();
//frame.run();
//System.exit(0);
}
所有行都已注释掉,因此无法执行任何操作。在行的开头取出//
以执行某些操作。此外,据我所知,您没有RegistrationFrame
class
,您可能希望实例化RegistrationForm
。另外,你为什么打电话给System.exit(0)
?