jdbc按钮清空文本框内容
时间: 2023-07-07 19:40:04 浏览: 54
假设你有一个文本框对象txtField和一个清空按钮对象clearButton,可以通过以下方式实现点击clearButton按钮时清空文本框内容的功能:
```java
clearButton.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
txtField.setText(""); // 将文本框内容设置为空字符串
}
});
```
这里使用了Java的匿名内部类来实现ActionListener接口,当按钮被点击时,会执行内部类中的actionPerformed方法,将文本框内容设置为空字符串即可清空文本框。
相关问题
Java中使用JFrame创建登录窗口 建立用户表user,当点击登录按钮时,对输入的用户名为和密码进行验 证: 当输入的用户和密码与user表中某一条记录相匹配时,弹出消息对话框,提示信息为:“用户名和密码正确”,否则,提示信息为:“用户名或密码错误”。 点击重置按钮时: 用户名文本框和密码文本框的内容被清空。
好的,下面是一份使用JFrame创建登录窗口的示例代码,实现了用户登录验证和重置功能:
```
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import java.sql.*;
public class LoginWindow extends JFrame implements ActionListener {
private JLabel nameLabel, passwordLabel;
private JTextField nameTextField;
private JPasswordField passwordField;
private JButton loginButton, resetButton;
public LoginWindow() {
setTitle("Login");
setSize(400, 200);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
// 创建窗口内容
JPanel panel = new JPanel();
panel.setLayout(new GridLayout(3, 2));
nameLabel = new JLabel("Name:");
nameTextField = new JTextField();
panel.add(nameLabel);
panel.add(nameTextField);
passwordLabel = new JLabel("Password:");
passwordField = new JPasswordField();
panel.add(passwordLabel);
panel.add(passwordField);
loginButton = new JButton("Login");
loginButton.addActionListener(this);
panel.add(loginButton);
resetButton = new JButton("Reset");
resetButton.addActionListener(this);
panel.add(resetButton);
add(panel);
setVisible(true);
}
// 处理登录和重置按钮点击事件
public void actionPerformed(ActionEvent e) {
if (e.getSource() == loginButton) {
String name = nameTextField.getText();
String password = new String(passwordField.getPassword());
// 验证用户名和密码
try {
Connection conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/mydatabase", "root", "password");
Statement stmt = conn.createStatement();
String sql = "SELECT * FROM user WHERE name = '" + name + "' AND password = '" + password + "'";
ResultSet rs = stmt.executeQuery(sql);
if (rs.next()) {
JOptionPane.showMessageDialog(this, "Username and password correct!");
} else {
JOptionPane.showMessageDialog(this, "Username or password incorrect!");
}
conn.close();
} catch (SQLException exc) {
JOptionPane.showMessageDialog(this, "Error: " + exc.getMessage());
}
} else if (e.getSource() == resetButton) {
nameTextField.setText("");
passwordField.setText("");
}
}
public static void main(String[] args) {
new LoginWindow();
}
}
```
这个示例代码创建了一个包含用户名、密码输入框,以及登录和重置按钮的窗口。当点击登录按钮时,会将用户输入的用户名和密码与数据库表`user`中的记录进行匹配,如果匹配成功,则弹出消息框提示“用户名和密码正确”,否则提示“用户名或密码错误”。当点击重置按钮时,会将用户名和密码输入框的内容清空。
需要注意的是,这个示例代码中的数据库连接信息是硬编码在程序中的,并且使用的是不安全的字符串拼接方式构建SQL语句,容易受到SQL注入攻击。在实际开发中,你需要使用安全的方式处理数据库连接和SQL语句,比如使用连接池、PreparedStatement和参数化查询等。
使用JFrame创建登录窗口(可参考下图或自行设计布局) 建立用户表user,当点击登录按钮时,对输入的用户名为和密码进行验 证: 当输入的用户和密码与user表中某一条记录相匹配时,弹出消息对话框,提示信息为:“用户名和密码正确”,否则,提示信息为:“用户名或密码错误”。 点击重置按钮时: 用户名文本框和密码文本框的内容被清空。
好的,这是一个简单的Java Swing程序,需要用到JFrame、JPanel、JLabel、JTextField、JPasswordField、JButton、JOptionPane等组件。下面是代码实现:
```java
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.JPasswordField;
import javax.swing.JTextField;
public class LoginFrame extends JFrame implements ActionListener {
private JPanel panel;
private JLabel userLabel, passwordLabel;
private JTextField userText;
private JPasswordField passwordText;
private JButton loginButton, resetButton;
public LoginFrame() {
panel = new JPanel();
userLabel = new JLabel("用户名:");
passwordLabel = new JLabel("密 码:");
userText = new JTextField(20);
passwordText = new JPasswordField(20);
loginButton = new JButton("登录");
resetButton = new JButton("重置");
panel.add(userLabel);
panel.add(userText);
panel.add(passwordLabel);
panel.add(passwordText);
panel.add(loginButton);
panel.add(resetButton);
loginButton.addActionListener(this);
resetButton.addActionListener(this);
this.add(panel);
this.setTitle("登录窗口");
this.setSize(300, 200);
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
this.setVisible(true);
}
public static void main(String args[]) {
new LoginFrame();
}
@Override
public void actionPerformed(ActionEvent e) {
if (e.getSource() == loginButton) {
String user = userText.getText();
String password = new String(passwordText.getPassword());
if (user.equals("") || password.equals("")) {
JOptionPane.showMessageDialog(null, "用户名或密码不能为空!");
return;
}
Connection conn = null;
try {
Class.forName("com.mysql.jdbc.Driver");
String url = "jdbc:mysql://localhost:3306/test";
String username = "root";
String pwd = "123456";
conn = DriverManager.getConnection(url, username, pwd);
String sql = "select * from user where username=? and password=?";
PreparedStatement ps = conn.prepareStatement(sql);
ps.setString(1, user);
ps.setString(2, password);
ResultSet rs = ps.executeQuery();
if (rs.next()) {
JOptionPane.showMessageDialog(null, "用户名和密码正确!");
} else {
JOptionPane.showMessageDialog(null, "用户名或密码错误!");
}
rs.close();
ps.close();
} catch (Exception ex) {
ex.printStackTrace();
} finally {
try {
if (conn != null) {
conn.close();
}
} catch (Exception ex) {
ex.printStackTrace();
}
}
} else if (e.getSource() == resetButton) {
userText.setText("");
passwordText.setText("");
}
}
}
```
需要注意的是,上面的程序使用了MySQL数据库,需要先安装MySQL,并且创建一个名为test的数据库,在test数据库中创建一个名为user的用户表,表结构如下:
```sql
CREATE TABLE `user` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`username` varchar(255) NOT NULL,
`password` varchar(255) NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
```
然后向user表中插入一些测试数据,例如:
```sql
INSERT INTO `user` (`id`, `username`, `password`) VALUES
(1, 'admin', '123456'),
(2, 'tom', 'abc123'),
(3, 'jack', 'password');
```
这样就可以运行上面的Java程序进行测试了。
相关推荐
![doc](https://img-home.csdnimg.cn/images/20210720083327.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)