编写Java应用程序,实现使用空布局完成登陆界面设计。当用户点击界面中的“登录”按钮时,获取用户输入的用户名和密码并进行校验,如果账号密码正确,弹出另外一个窗口。如果账号密码错误弹出对话框。单击重置按钮实现账号密码清空。
时间: 2024-03-15 10:44:05 浏览: 63
好的,我可以为您提供一个Java应用程序的示例,实现使用空布局完成登陆界面设计,同时实现用户校验和弹窗功能。代码如下:
```java
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class LoginFrame extends JFrame implements ActionListener {
private static final long serialVersionUID = 1L;
private JTextField usernameField;
private JPasswordField passwordField;
private JButton loginButton, resetButton;
public LoginFrame() {
// 设置窗口标题和大小
setTitle("登录");
setSize(300, 150);
// 创建面板,并设置布局为null
JPanel panel = new JPanel(null);
// 创建提示文本和输入框
JLabel usernameLabel = new JLabel("用户名:");
usernameField = new JTextField(20);
JLabel passwordLabel = new JLabel("密 码:");
passwordField = new JPasswordField(20);
// 创建按钮
loginButton = new JButton("登录");
resetButton = new JButton("重置");
// 设置组件的位置和大小
usernameLabel.setBounds(30, 20, 60, 25);
usernameField.setBounds(90, 20, 160, 25);
passwordLabel.setBounds(30, 50, 60, 25);
passwordField.setBounds(90, 50, 160, 25);
loginButton.setBounds(50, 85, 80, 25);
resetButton.setBounds(160, 85, 80, 25);
// 添加组件到面板中
panel.add(usernameLabel);
panel.add(usernameField);
panel.add(passwordLabel);
panel.add(passwordField);
panel.add(loginButton);
panel.add(resetButton);
// 添加面板到窗口中
add(panel);
// 设置窗口居中显示
setLocationRelativeTo(null);
// 为按钮添加监听器
loginButton.addActionListener(this);
resetButton.addActionListener(this);
}
// 处理按钮点击事件
public void actionPerformed(ActionEvent e) {
if (e.getSource() == loginButton) {
// 获取用户输入的用户名和密码
String username = usernameField.getText();
String password = new String(passwordField.getPassword());
// 校验用户名和密码
if ("admin".equals(username) && "123456".equals(password)) {
// 显示另一个窗口
JOptionPane.showMessageDialog(this, "登录成功!");
new MainFrame().setVisible(true);
this.dispose();
} else {
// 显示错误提示框
JOptionPane.showMessageDialog(this, "用户名或密码错误,请重新输入!");
}
} else if (e.getSource() == resetButton) {
// 清空用户名和密码
usernameField.setText("");
passwordField.setText("");
}
}
public static void main(String[] args) {
// 创建登录窗口
LoginFrame frame = new LoginFrame();
// 设置窗口关闭时退出程序
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
// 显示窗口
frame.setVisible(true);
}
}
// 另一个窗口
class MainFrame extends JFrame {
private static final long serialVersionUID = 1L;
public MainFrame() {
// 设置窗口标题和大小
setTitle("主界面");
setSize(300, 200);
// 创建面板,并设置布局为null
JPanel panel = new JPanel(null);
// 创建标签和按钮
JLabel label = new JLabel("欢迎登录!");
JButton button = new JButton("退出");
// 设置组件的位置和大小
label.setBounds(120, 60, 80, 25);
button.setBounds(120, 100, 80, 25);
// 添加组件到面板中
panel.add(label);
panel.add(button);
// 添加面板到窗口中
add(panel);
// 设置窗口居中显示
setLocationRelativeTo(null);
// 为按钮添加监听器
button.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
// 关闭窗口
dispose();
}
});
}
}
```
在这个示例中,我们使用了`JFrame`、`JPanel`、`JLabel`、`JTextField`、`JPasswordField`和`JButton`等Swing组件,使用了空布局`null`来布局这些组件。用户输入用户名和密码后,单击“登录”按钮进行校验,如果校验通过就弹出另外一个窗口,否则弹出错误提示框。同时,单击“重置”按钮可以清空用户名和密码。在另外一个窗口中,显示欢迎信息和一个“退出”按钮,单击“退出”按钮可以关闭窗口。
阅读全文