小弟最近刚看完java视频,现在在用Eclipse写学生成绩管理系统,遇到两个问题。
第一个是:我写了一个用户登录界面,当我登陆的时候会弹出另一个窗口,就是系统使用界面,如果我关掉系统使用界面,结果用户登陆界面也关了。如果我在系统使用界面再点击使用某个功能弹出另一个窗口,而我又关了新弹出来的窗口,那系统使用对话框会关掉,登陆对话框也会一起关掉。这是怎么回事?
登陆按钮的事件代码:
package ManageSystem;
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
class SystemFrame extends JFrame{
public SystemFrame(String s){
super(s);
JButton btnInput=new JButton("1 输入学生成绩");
JButton btnCorrect=new JButton("2 修改学生成绩");
JButton btnDelete=new JButton("3 删除学生成绩");
JButton btnAdd=new JButton("4 添加学生成绩");
JButton btnSearch=new JButton("5 查询学生成绩");
JButton btnWatch=new JButton("6 浏览学生成绩");
JLabel lbl=new JLabel("南京晓庄学院 学生成绩管理系统 使用");
JPanel p1=new JPanel();
JPanel p2=new JPanel();
p1.add(lbl);
p1.setLayout(new FlowLayout());
p2.add(btnInput); p2.add(btnCorrect); p2.add(btnDelete);
p2.add(btnAdd); p2.add(btnSearch); p2.add(btnWatch);
p2.setLayout(new GridLayout(6,1));
this.add(p1,BorderLayout.NORTH);
this.add(p2,BorderLayout.SOUTH);
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
this.setBounds(200,200,250,400);
this.pack();
btnInput.addActionListener(new InputListener(this));
}
}
package ManageSystem;
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class Listener implements ActionListener{
MSFrame tf=null;
public Listener(MSFrame tf){
this.tf=tf;
}
@Override
public void actionPerformed(ActionEvent e) {
String User="123";
String Password="123";
String getUser=tf.tfUser.getText();
String getPassword=tf.tfPassword.getText();
if(User.equals(getUser)&&Password.equals(getPassword)){
SystemFrame system=new SystemFrame("学生成绩管理系统 使用");
system.setVisible(true);
}
else{
JFrame f=new JFrame("Error");
JLabel error=new JLabel("对不起,您输入的用户名和密码错误");
f.add(error);
f.setBounds(200,200,400,90);
f.setBackground(Color.RED);
f.setLayout(new FlowLayout());
f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
f.setVisible(true);
}
}
}
我的问题就是我的对话框是不能单独控制的,关掉一个就全部都关掉了。