- Java code
boolean flag = false; public void text(){ String s2 = text2.getText(); String a2 = "\\w+@\\w+(\\.\\w+)+"; boolean flag2 = s2.matches(a2); String s4 = text4.getText(); String a4 = "[2]\\d{10}"; boolean flag4 = s4.matches(a4); String s5 = text5.getText(); String a5 = "\\w{6,10}"; boolean flag5 = s5.matches(a5); if(!flag2) JOptionPane.showMessageDialog(this,"您输入了非法字符","警告提示框", JOptionPane.WARNING_MESSAGE); else if(!flag4) JOptionPane.showMessageDialog(this,"学号错误!","警告提示框", JOptionPane.WARNING_MESSAGE); else if(!flag5) JOptionPane.showMessageDialog(this,"密码错误!","警告提示框", JOptionPane.WARNING_MESSAGE); else{ new login(); flag = true; } } public void myevent(){ addWindowListener(new WindowAdapter(){ public void windowClosing(WindowEvent e){ setVisible(false); } }); submit.addActionListener(new ActionListener(){ public void actionPerformed(ActionEvent e){ if(e.getSource()==submit){ text(); // zhuce(); String s1 = text1.getText(); String s2 = text2.getText(); String s3 = text3.getText(); String s4 = text4.getText(); String s5 = text5.getText(); try{ FileWriter fw = new FileWriter("1.txt",true); if(flag){ fw.write(s1+" "+s2+" "+s3+" "+s4+" "+s5+"\r\n"); fw.flush(); fw.close(); } } catch(IOException e1){} } } });
为什么text()方法里的new login()执行后,myevent()方法中if(flag)后面的语句还会执行,怎么改啊
------解决方案--------------------------------------------------------
else{
new login();
flag = false;
}
------解决方案--------------------------------------------------------
flag还是一开始login里面的flag,new另外一个login不会对原来的有任何影响。
------解决方案--------------------------------------------------------
没看懂你问的、、、
------解决方案--------------------------------------------------------
你只需要查看flag值得变化就可以了,是否执行new login()和它一点关系都没有。