打开基于用户信息的特定Jframe的问题

时间:2015-04-13 16:06:08

标签: java swing jframe

我之前没有使用过这个网站来提问,但我通过阅读一些问题已经学到了很多东西。我正在尝试编写一个程序,根据用户为其ID和密码输入的内容,获取一个特定的JFrame以弹出JButton以供他们使用。我尝试将用户输入的文本保存在初始JFrame"登录"这可能是一个错误,因为我还没有真正与JFrame合作。有没有其他方法这样做?此外,当我运行该程序时,它会拉出一个空白JFrame,但当我最小化并最大化JFrame窗口时,它会拉动"一切都好了。有什么理由吗?

import javax.swing.*;

import java.awt.*;
import java.awt.event.*;

public class example 
{
    public static void main (String[] args)
    {    
    JFrame frame = new JFrame("Login");
    frame.setVisible(true);
    frame.setSize(350,150);
    frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

    JLabel label1 = new JLabel("User Id: ");
    JLabel label2 = new JLabel("Password: ");
    JTextField txt2 = new JTextField("                        ");
    JButton button = new JButton("login");
    JTextField txt = new JTextField("                          ");

    frame.add(label1);
    frame.add(txt);
    frame.add(label2);
    frame.add(txt2); 

    String user = txt.getText();
    String password = txt2.getText();

    JButton button2 = new JButton("Cancel");
    frame.add(button);
    frame.add(button2);
    button2.addActionListener (new Action2()); 
    frame.setLayout(new FlowLayout());


    button.addActionListener(new ActionListener()
    { 
        public void actionPerformed( ActionEvent e)
        {  
            if(user == "abc" && password == "123")
            {
                JFrame frame2 = new JFrame("Student");
                frame2.setVisible(true);
                frame2.setSize(200,200);
            }
            if(user == "def" && password == "456")
            {
                JFrame frame2 = new JFrame("Instructor");
                frame2.setVisible(true);
                frame2.setSize(200,200);
            }
            if(user == "ghi" && password == "789")
            {
                JFrame frame2 = new JFrame("Teacher");
                frame2.setVisible(true);
                frame2.setSize(200,200);
            }
        } 
    });
}
static class Action2 implements ActionListener 
{        
    public void actionPerformed (ActionEvent e) 
    {     
        System.exit(0);
    } 
}

0 个答案:

没有答案