在Java中,创建一个登录窗口并在用户成功登录后显示另一个窗口是一个常见的任务。以下是一个简单的教程,将指导你如何使用Java Swing库来实现这一功能。
准备工作
在开始之前,请确保你已经安装了Java开发环境,包括Java编译器(JDK)和IDE(如IntelliJ IDEA或Eclipse)。
步骤 1: 创建登录窗口
首先,我们需要创建一个登录窗口。这个窗口将包含用户名和密码输入框以及一个登录按钮。
import javax.swing.*;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
public class LoginFrame extends JFrame {
private JTextField usernameField;
private JPasswordField passwordField;
public LoginFrame() {
setTitle("登录窗口");
setSize(300, 150);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setLayout(new FlowLayout());
JLabel usernameLabel = new JLabel("用户名:");
usernameField = new JTextField(20);
JLabel passwordLabel = new JLabel("密码:");
passwordField = new JPasswordField(20);
JButton loginButton = new JButton("登录");
loginButton.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
String username = usernameField.getText();
String password = new String(passwordField.getPassword());
if ("admin".equals(username) && "password".equals(password)) {
dispose(); // 关闭登录窗口
new MainWindow(); // 创建并显示主窗口
} else {
JOptionPane.showMessageDialog(LoginFrame.this, "用户名或密码错误!", "错误", JOptionPane.ERROR_MESSAGE);
}
}
});
add(usernameLabel);
add(usernameField);
add(passwordLabel);
add(passwordField);
add(loginButton);
setLocationRelativeTo(null); // 窗口居中显示
}
public static void main(String[] args) {
SwingUtilities.invokeLater(new Runnable() {
@Override
public void run() {
new LoginFrame().setVisible(true);
}
});
}
}
步骤 2: 创建主窗口
在用户成功登录后,我们将创建一个新的窗口,即主窗口。
import javax.swing.*;
public class MainWindow extends JFrame {
public MainWindow() {
setTitle("主窗口");
setSize(400, 300);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setLayout(new BorderLayout());
JLabel welcomeLabel = new JLabel("欢迎来到主窗口!", SwingConstants.CENTER);
add(welcomeLabel, BorderLayout.CENTER);
setLocationRelativeTo(null); // 窗口居中显示
}
}
步骤 3: 运行程序
现在,你可以运行程序了。当你运行LoginFrame类时,应该会看到一个登录窗口。输入正确的用户名和密码后,登录窗口将关闭,并显示主窗口。
这个简单的教程展示了如何使用Java Swing创建一个登录窗口,并在用户成功登录后显示另一个窗口。你可以根据需要扩展这个程序,例如添加用户注册功能、更复杂的验证逻辑或美化界面。
