你代码我没法编译运行。删了不少。我这每次都是提示成功
import java.awt.Toolkit;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;import javax.swing.ButtonGroup;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.JPasswordField;
import javax.swing.JRadioButton;
import javax.swing.JTextField;class register extends JFrame implements ActionListener { JLabel name, password, sex, age;
JTextField namebox;
JPasswordField passwordbox;
ButtonGroup group;
JRadioButton male, female;
JButton Regist; public void actionPerformed(ActionEvent e) {
}

public register(){
this.setTitle("注册 —— Ace");
// this.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
this.setResizable(false);
this.setVisible(true);
this.setLayout(null);
this.setLocation((int) (Toolkit.getDefaultToolkit().getScreenSize()
.getWidth() - 250) / 2, (int) (Toolkit.getDefaultToolkit()
.getScreenSize().getHeight() - 280) / 2);
this.setSize(250, 280); name = new JLabel("Name:");
password = new JLabel("Password:");
sex = new JLabel("Sex:");
age = new JLabel("Age:"); name.setBounds(20, 20, 70, 30);
password.setBounds(20, 60, 70, 30);
sex.setBounds(20, 100, 70, 30);
age.setBounds(20, 140, 70, 30); this.add(name);
this.add(password);
this.add(sex);
this.add(age); namebox = new JTextField();
passwordbox = new JPasswordField();
group = new ButtonGroup();
male = new JRadioButton("Male");
female = new JRadioButton("Female"); group.add(male);
group.add(female); namebox.setBounds(100, 20, 120, 30);
passwordbox.setBounds(100, 60, 120, 30);
male.setBounds(100, 100, 60, 30);
female.setBounds(170, 100, 80, 30); this.add(namebox);
this.add(passwordbox);
this.add(male);
this.add(female); this.addWindowListener(new WindowAdapter() {
public void windowClosing(WindowEvent e) {
register.this.namebox.setText(null);
register.this.passwordbox.setText(null);
register.this.male.setSelected(false);
register.this.female.setSelected(false);
// register.this.agebox.setSelectedItem(null);
register.this.dispose();
}
}); Regist = new JButton("Register");
this.add(Regist);
Regist.setBounds(80, 200, 90, 30);
Regist.addActionListener(new ActionListener() {
private String Sex; @Override
public void actionPerformed(ActionEvent arg0) { if (namebox.getText() != null & passwordbox.getText() != null
& male.isSelected() == true
| female.isSelected() == true) {
if (male.isSelected()) {
Sex = "male";
} else {
Sex = "female";
} System.out.println("success");
} else {
namebox.setText(null);
passwordbox.setText(null);
male.setSelected(false);
female.setSelected(false);
JOptionPane.showConfirmDialog(register.this,
"existence empty option, fill all option please",
"contact Ace Please", JOptionPane.CLOSED_OPTION,
JOptionPane.ERROR_MESSAGE);
} // RadioButton 是用 isSelect来判断是否选定 ,然后再 paramString获得 名字
// Combobox 是 getSelectedItem() 获取当前所选项的值
} });
this.repaint(); // 所有组件 添加完 repaint一下
} public static void main(String[] args) {
new register().setVisible(true);
}}

解决方案 »

  1.   

     我知道我们代码的区别了     我在 登陆窗口的 注册按钮上是这样写的register.addActionListener(new register());    然后代码都  写在actionPerformed函数里    而你是将 代码 都写入构造函数里,理论上好像都会被执行,但问一下这两种方式  有什么区别,是不是因为我这一种 而导致了  上面我所说的问题
      

  2.   

    不对呀  大神    必须用actionPerformed方法, 实例化只能一次,而我的是button的触发事件 是要多次注册的