点确定有用,点关闭没反应。
package DormitoryManagementSystem;
import java.awt.Color;
import java.awt.Dialog;
import java.awt.Font;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.KeyAdapter;
import java.awt.event.KeyEvent;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
import javax.swing.JButton;
import javax.swing.JLabel;
public class StartLoginKeyListener extends KeyAdapter{
StartLogin sl;
public StartLoginKeyListener() { }
public StartLoginKeyListener(StartLogin sl) {
super();
this.sl = sl;
}
@Override
public void keyPressed(KeyEvent e) {
// TODO Auto-generated method stub
super.keyPressed(e);
if(e.getKeyCode() == KeyEvent.VK_ENTER){
if(sl.getJtf_1().getText().length()==0 || sl.getJpwf_1().getPassword().length==0){
ErrorInfo();
}
else{
char[] PassWord = sl.getJpwf_1().getPassword();
if(sl.getJtf_1().getText().length()==0 || sl.getJpwf_1().getPassword().length==0){
ErrorInfo();
}
else if(PassWord.toString()!="123456"){
System.out.println("密码错误");
}
else{
sl.dispose();
new MainFrame();
}
}
}
}
public void ErrorInfo(){
Dialog dl = new Dialog(sl,"Error---错误信息",true);
dl.setBounds(380,270,600, 150);
dl.setLayout(null);
dl.setResizable(false); //设置窗体大小不可以改变
dl.setBackground(Color.white);
JLabel jb= new JLabel("您输入的用户名或密码为空,请重新输入.");
jb.setBounds(125, 50, 380, 20);
jb.setFont(new Font("张海山锐线简体",Font.PLAIN,20));
dl.add(jb);
JButton jbutt = new JButton("确定");
jbutt.setBounds(230, 100, 150, 20);
jbutt.setBackground(Color.white);
jbutt.setFocusPainted(false); //点击后文字不获得焦点边框
dl.add(jbutt);
dl.addWindowListener(new WindowAdapter() {
@Override
public void windowClosed(WindowEvent e) {
dl.setVisible(false);
}
});
jbutt.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
dl.setVisible(false);
}
});
dl.setVisible(true);
}
}
------解决思路----------------------
我记得有个System.exit(0)这样的..忘了是不是
当初好像就学了一点点
------解决思路----------------------
没有完整代码,不太清楚,不过你的代码没有抛异常么?
可以尝试把dl设置为final试试.感觉是匿名内部类变量引用的问题.如果final能解决,可以下载论坛上那个java核心技术,里面有一小部分关于匿名内部类参数传递限制的内容. 即必须是final的问题.
------解决思路----------------------
我觉得应该抛空指针才对...