使用java写一个登录界面,功能包括用户名和密码输入,以及验证码功能。界面居中对齐有登录,注册按钮
时间: 2024-04-29 10:21:31 浏览: 12
这是一个基本的登录界面的Java代码,包括用户名和密码输入以及验证码功能。界面使用Swing框架实现,并且居中对齐。登录和注册按钮使用JButton实现。
```java
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.util.Random;
import javax.swing.*;
public class LoginFrame extends JFrame implements ActionListener{
private JTextField userNameField;
private JPasswordField passwordField;
private JTextField captchaField;
private JLabel captchaLabel;
private JButton loginButton;
private JButton registerButton;
public LoginFrame() {
initUI();
}
private void initUI() {
setTitle("Login"); //设置窗口标题
setPreferredSize(new Dimension(300, 200)); //设置窗口大小
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); //关闭窗口时退出程序
setLayout(new GridBagLayout()); //使用GridBagLayout布局管理器
GridBagConstraints c = new GridBagConstraints();
c.fill = GridBagConstraints.HORIZONTAL;
c.insets = new Insets(5, 10, 5, 10); //设置组件之间的间距
//用户名输入框
JLabel userNameLabel = new JLabel("UserName:");
c.gridx = 0;
c.gridy = 0;
add(userNameLabel, c);
userNameField = new JTextField(20);
c.gridx = 1;
c.gridy = 0;
add(userNameField, c);
//密码输入框
JLabel passwordLabel = new JLabel("Password:");
c.gridx = 0;
c.gridy = 1;
add(passwordLabel, c);
passwordField = new JPasswordField(20);
c.gridx = 1;
c.gridy = 1;
add(passwordField, c);
//验证码输入框
JLabel captchaLabel = new JLabel("Captcha:");
c.gridx = 0;
c.gridy = 2;
add(captchaLabel, c);
captchaField = new JTextField(10);
c.gridx = 1;
c.gridy = 2;
add(captchaField, c);
//验证码图片
this.captchaLabel = new JLabel();
refreshCaptcha();
c.gridx = 2;
c.gridy = 2;
add(this.captchaLabel, c);
//登录按钮
loginButton = new JButton("Login");
loginButton.addActionListener(this);
c.gridx = 0;
c.gridy = 3;
add(loginButton, c);
//注册按钮
registerButton = new JButton("Register");
registerButton.addActionListener(this);
c.gridx = 1;
c.gridy = 3;
add(registerButton, c);
pack(); //调整窗口大小以适应组件
setLocationRelativeTo(null); //将窗口居中对齐
setVisible(true); //显示窗口
}
//刷新验证码
private void refreshCaptcha() {
Random random = new Random();
int captcha = random.nextInt(9000) + 1000;
captchaLabel.setText(String.valueOf(captcha));
}
//处理按钮事件
@Override
public void actionPerformed(ActionEvent e) {
if (e.getSource() == loginButton) {
String userName = userNameField.getText();
String password = new String(passwordField.getPassword());
int captcha = Integer.parseInt(captchaField.getText());
int realCaptcha = Integer.parseInt(captchaLabel.getText());
if (captcha == realCaptcha) {
if (userName.equals("admin") && password.equals("admin")) {
JOptionPane.showMessageDialog(this, "Login Success!");
} else {
JOptionPane.showMessageDialog(this, "UserName or Password Wrong!");
}
} else {
JOptionPane.showMessageDialog(this, "Captcha Wrong!");
}
} else if (e.getSource() == registerButton) {
JOptionPane.showMessageDialog(this, "Register Function is Not Implemented Yet!");
}
refreshCaptcha(); //刷新验证码
}
//启动应用程序
public static void main(String[] args) {
new LoginFrame();
}
}
```