用Java打一个窗口用于登录界面且账号密码是关联MySQL
时间: 2024-03-18 14:38:56 浏览: 17
好的,下面是一个示例代码,你可以参考它实现你自己的登录窗口。
首先,需要使用Java的Swing库创建一个窗口和用户界面。在这个窗口中,我们需要添加一些文本框和标签,以便用户输入他们的用户名和密码。示例代码如下:
```java
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
import java.sql.*;
public class LoginWindow extends JFrame implements ActionListener {
private JLabel userLabel, passLabel;
private JTextField userText;
private JPasswordField passText;
private JButton loginButton;
public LoginWindow() {
setTitle("Login");
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setSize(300, 150);
setLocationRelativeTo(null);
// 创建用户界面
userLabel = new JLabel("Username:");
passLabel = new JLabel("Password:");
userText = new JTextField(20);
passText = new JPasswordField(20);
loginButton = new JButton("Login");
loginButton.addActionListener(this);
JPanel panel = new JPanel(new GridLayout(3, 2));
panel.add(userLabel);
panel.add(userText);
panel.add(passLabel);
panel.add(passText);
panel.add(new JLabel());
panel.add(loginButton);
add(panel);
setVisible(true);
}
// 处理登录按钮点击事件
public void actionPerformed(ActionEvent e) {
if (e.getSource() == loginButton) {
String user = userText.getText();
String pass = new String(passText.getPassword());
// 验证用户名和密码
try {
Connection conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/mydatabase", "username", "password");
Statement stmt = conn.createStatement();
ResultSet rs = stmt.executeQuery("SELECT COUNT(*) FROM users WHERE username='" + user + "' AND password='" + pass + "'");
rs.next();
int count = rs.getInt(1);
if (count == 1) {
JOptionPane.showMessageDialog(this, "Login successful!");
dispose();
} else {
JOptionPane.showMessageDialog(this, "Invalid username or password!");
}
rs.close();
stmt.close();
conn.close();
} catch (SQLException ex) {
ex.printStackTrace();
}
}
}
public static void main(String[] args) {
new LoginWindow();
}
}
```
在上面的代码中,我们使用了JDBC连接到MySQL数据库,并查询用户表以验证用户输入的用户名和密码是否正确。请注意,这只是一个简单的示例,实际应用中需要更加严密和安全的验证方式。
另外,需要根据实际情况修改数据库连接的URL、用户名和密码,以及查询的用户表和字段名。