[问题] GUI+流程控制新手问题

楼主: BlackZap (Zap)   2014-04-06 00:43:04
想设计程式开启后
先跳出一个视窗来要求输入密码
密码正确后再叫出真正要用的GUI部分
目前写法
主程式呼叫passwordcheck()
public passwordcheck() { //要求输入密码的GUI
getContentPane().setLayout(new FlowLayout());
JLabel lb = new JLabel("输入密码 ");
final JPasswordField pwd = new JPasswordField(12);
this.add(lb);
this.add(pwd);
this.setVisible(true);
this.setSize(300, 200);
addWindowListener(new WindowAdapter() {
public void windowClosing(WindowEvent e) {
System.exit(0);
}
});
pwd.addActionListener(new ActionListener(){ //输入反应部分
//@Override
public void actionPerformed(ActionEvent arg0) {
try {readpassword();//抓我之前存的密码的副程式
//密码存在ckey
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
String key=new String(pwd.getPassword()); //输入的密码存在key
if(ckey.equals(key)) //确认密码是否正确
{
JOptionPane.showMessageDialog(null,"密码正确");
EventQueue.invokeLater(new Runnable() {
public void run() {
try {
//正确的话去叫我要开的程式
calculatorGUI frame = new calculatorGUI();
frame.setVisible(true);
}
catch (Exception e) { e.printStackTrace();}
}
});
}
else
JOptionPane.showMessageDialog(null,密码错误);
}
}});
}
目前结果会是 密码正确->会去叫calculatorGUI()
但原本的输入密码接口会留在那
想要设计成
密码正确时叫完calculatorGUI() 输入密码接口会自己关掉
但流程不知道怎么设计比较好
是不是不该把呼叫写在passwordcheck()中啊?
作者: morris282 (morris)   2014-04-06 18:38:00
把lb和pwd放进一个新的JPanel里面 再依照条setVisible()然后记得重绘
作者: pzyc79   2014-04-06 20:16:00
密码正确->最后一行插入“this.dispose();”释放自己
楼主: BlackZap (Zap)   2014-04-07 22:21:00
感谢楼上 修改好了

Links booklink

Contact Us: admin [ a t ] ucptt.com