我之前没有使用过这个网站来提问,但我通过阅读一些问题已经学到了很多东西。我正在尝试编写一个程序,根据用户为其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);
}
}