标题:求大神!怎么样让登陆界面先显示,登陆成功后再进入操作界面。目前两个界面会 ...
只看楼主
qq391733016
Rank: 1
等 级:新手上路
帖 子:2
专家分:0
注 册:2014-1-2
 问题点数:0 回复次数:1 
求大神!怎么样让登陆界面先显示,登陆成功后再进入操作界面。目前两个界面会同时显示!
import javax.swing.*;
import javax.swing.border.*;
import java.awt.*;
import java.awt.event.*;
import java.sql.*;
public class Film implements ActionListener
{
    static JFrame f = null;                //类属性
    public Film()                  //构造方法
    {
        f = new JFrame("电影信息管理系统");    //创建一个顶层容器
        Container contentPane = f.getContentPane();  //获得其内容面板
        JPanel buttonPanel = new JPanel(); //创建一中间容器JPanel

        JButton b = new JButton("信息登记"); //创建一原子组件——按钮
        b.addActionListener(this); //为按钮添加事件监听器对象
        buttonPanel.add(b); //将此按钮添加到中间容器
        

        b = new JButton("信息删除"); //再创建一按钮
        b.addActionListener(this); //为按钮增加事件监听器
        buttonPanel.add(b); //将按钮添加到中间容器

         b = new JButton("信息修改"); //再创建一按钮
        b.addActionListener(this); //为按钮增加事件监听器
        buttonPanel.add(b); //将按钮添加到中间容器

         b = new JButton("信息查询"); //再创建一按钮
        b.addActionListener(this); //为按钮增加事件监听器
        buttonPanel.add(b); //将按钮添加到中间容器

        b = new JButton("退出系统"); //再创建一按钮
        b.addActionListener(this); //为按钮增加事件监听器
        buttonPanel.add(b); //将按钮添加到中间容器

        buttonPanel.setBorder(BorderFactory.createTitledBorder(  //设置中间容器边框
            BorderFactory.createLineBorder(Color.blue,3),
            "电影信息操作界面",TitledBorder.CENTER,TitledBorder.TOP));
        contentPane.add(buttonPanel,BorderLayout.CENTER); //将中间容器添加到内容面板

        JMenuBar mBar=new JMenuBar();      //创建菜单条
        JMenu selection=new JMenu("选项");
        JMenuItem regist=new JMenuItem("信息登记");
        JMenuItem delete=new JMenuItem("信息删除");

        JMenuItem sum=new JMenuItem("统计");
        selection.add(regist);
        selection.add(delete);
        selection.add(sum);
        JMenu sys=new JMenu("系统");
        JMenuItem exit=new JMenuItem("退出系统");
        sys.add(exit);
        mBar.add(selection);
        mBar.add(sys);
        f.setJMenuBar(mBar); //为窗体增加菜单
        regist.addActionListener(this); //为菜单添加事件监听器
        delete.addActionListener(this);
        sum.addActionListener(this);
        exit.addActionListener(this);

        f.pack();
        f.setVisible(true);
        f.addWindowListener(new WindowAdapter() { //为窗口操作添加监听器
            public void windowClosing(WindowEvent e) {
                System.exit(0);
            }
        });
    }
public void actionPerformed(ActionEvent e) { //实现ActionListener接口唯一的方法
        String cmd = e.getActionCommand();   //从事件对象获得相关命令名称
        if (cmd.equals("信息登记")) {  //根据名称选择相应事件
            new RegistSystem(f);      //显示电影信息登记对话框
        } else if (cmd.equals("退出系统")) {
            System.exit(0);
        }  else if (cmd.equals("统计")){
            try{
              Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");  //加载驱动器
              Connection con=
              DriverManager.getConnection("jdbc:odbc:FILM","Test","123456");
                                        //和数据库建立连接
              Statement stmt=con.createStatement();   //创建语句
              ResultSet rs=stmt.executeQuery("Select * From film");
              int i=0;
              while(rs.next ()) i=i+1;
              JOptionPane.showMessageDialog(f,"共有"+i+"部电影信息"); //显示信息对话框
              stmt.close ();
              con.close ();   //关闭到数据库的连接
            }
         catch(Exception ex){}
      }

   }
public  static void main(String args[]){  //主方法,用于创建Film类的一个对象
     new Film();
     new PassWord(f);  //新建一输入密码对话框
   }
}
class PassWord implements ActionListener  //输入密码对话框类
   {
  JTextField user;
  JPasswordField passWd;
  JButton b1,b2;
  Container dialogPane;
  JDialog d;
  JFrame f;

  public PassWord(JFrame f) {
   d=new JDialog();  //新建一对话框
   d.setTitle("请输入用户名和密码");  //设置标题
   dialogPane=d.getContentPane();
   dialogPane.setLayout(new GridLayout(3,2));
   dialogPane.add(new JLabel("用户名",SwingConstants.CENTER));
   user=new JTextField();
   dialogPane.add(user);
   dialogPane.add(new JLabel("密 码",SwingConstants.CENTER));
   passWd=new JPasswordField();
   dialogPane.add(passWd);
   b1=new JButton("确定");
   b2=new JButton("退出");
   dialogPane.add(b1);
   dialogPane.add(b2);
   b1.addActionListener(this);
   b2.addActionListener(this);
   d.setBounds(200,150,400,130);
   d.getRootPane().setDefaultButton(b1);
   d.setVisible(true);
   this.f=f;
  }
 public void actionPerformed(ActionEvent e){
  String cmd=e.getActionCommand();
  if(cmd.equals("确定"))
  {
   String name=user.getText();
   char[] c=passWd.getPassword();
   String passWord=new String(c);
   if((name.equals("123"))&&(passWord.equals("123")))
   {
    d.dispose();

    f.setVisible(true);
    return;
    }
  else
  {
   JOptionPane.showMessageDialog(d,"用户名或密码错误","请重新输入",JOptionPane.WARNING_MESSAGE);
   user.setText("");
   passWd.setText("");
   }
  }
  if(cmd.equals("退出"))
      System.exit(0);
 }
}

目前运行结果:两界面同时显示,都可以进行操作


求大神!怎么样让登陆界面先显示,登陆成功后再进入操作界面!代码要怎么修改?

搜索更多相关主题的帖子: import public 管理系统 null 信息 
2014-01-02 11:09
qq391733016
Rank: 1
等 级:新手上路
帖 子:2
专家分:0
注 册:2014-1-2
得分:0 
已解决,将一开始在主函数中创建的new Film();移动到判断账号密码正确后的代码中
2014-01-02 14:41



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-426017-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.451751 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved