submitButton.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { // 处理添加管理员用户信息事件 String name = nameField.getText(); String password = new String(passwordField.getPassword()); if (name.trim().isEmpty()) { // 判断用户名是否为空 JOptionPane.showMessageDialog(null, "请输入用户名"); return; } try { // 将用户信息添加到数据库 String sql = "INSERT INTO 管理员信息表 (用户, 密码) VALUES (?, ?)"; PreparedStatement ps = conn.prepareStatement(sql,1004,1007); ps.setString(1, name); ps.setString(2, password); ps.executeUpdate(); JOptionPane.showMessageDialog(null, "添加成功"); } catch (SQLException ex) { ex.printStackTrace(); JOptionPane.showMessageDialog(null, "添加失败"); } } });无法获取输入框文本始终提示输入用户名
时间: 2024-02-10 16:23:01 浏览: 67
根据你提供的代码,可能的问题是没有正确获取输入框的文本。你可以检查以下几点:
1. 确认nameField是正确的文本输入框。
2. 确认在addActionListener方法之前,nameField已经被正确初始化。
3. 确认没有其他地方对nameField的值进行了修改。
如果以上都没有问题,可以尝试在获取文本之前打印一下nameField.getText()的值,看看是否为空。如果还是无法解决问题,请提供更多代码片段或上下文信息,以便更好地帮助你。
相关问题
label = new JLabel("点击开始开始游戏"); textField = new JTextField(10); startButton = new JButton("开始"); submitButton = new JButton("提交"); submitButton.setEnabled(false); startButton.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { startGame(); } }); submitButton.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { checkAnswer(); } }); JPanel panel = new JPanel(); panel.add(label); panel.add(textField); panel.add(submitButton); panel.add(startButton); add(panel); 这段代码相关知识点讲解
这段代码是一个基于Java Swing的简单GUI程序,它创建了一个JLabel,一个JTextField,两个JButton,并将它们添加到JPanel中,最后将面板添加到主窗口中。
JLabel用于显示文本,JTextField用于接受用户输入,JButton用于触发事件。在这个程序中,一个JButton被用来开始游戏,另一个JButton被用来提交用户的答案。
startButton和submitButton都添加了ActionListener,当用户点击按钮时,对应的ActionListener会被触发执行。startButton的ActionListener调用了startGame()方法,而submitButton的ActionListener调用了checkAnswer()方法。
面板被用来组织这些组件,并且使用了FlowLayout布局管理器。最后,面板被添加到主窗口中以显示GUI。
package com; import javax.swing.*; import java.awt.*; import java.awt.event.*; public class UserInfo extends JFrame implements ActionListener { JLabel JPasswordField, idLabel; JTextField JPasswordField, idField; JButton submitButton; public UserInfo() { setTitle("用户信息"); setSize(300, 200); setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); setLayout(new GridLayout(3, 2)); idLabel = new JLabel("身份证号:"); add(idLabel); idField = new JTextField(); add(idField); JPasswordField = new JPasswordField("密码:"); add(JPasswordField); JPasswordField = new JTextField(); add(JPasswordField); submitButton = new JButton("提交"); add(submitButton); submitButton.addActionListener(this); } public void actionPerformed(ActionEvent e) { String name = JPasswordField.getText(); String id = idField.getText(); JOptionPane.showMessageDialog(null, name + "笨蛋"); } public static void main(String[] args) { UserInfo userInfo = new UserInfo(); userInfo.setVisible(true); } }代码查错
在这段代码中,有几个问题需要解决:
1. `JPasswordField` 和 `JTextField` 的变量名重复了,需要修改其中一个。
2. `JPasswordField` 组件应该使用 `JPasswordField` 类型,不能使用 `JTextField` 类型。
3. 在 `actionPerformed` 方法中,获取密码的方式不正确。应该使用 `JPasswordField` 的 `getPassword` 方法获取密码。
4. 在弹出对话框时,字符串拼接的方式不正确,应该使用字符串格式化的方式。
根据上述问题,下面是修改后的代码:
```java
package com;
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
public class UserInfo extends JFrame implements ActionListener {
JLabel idLabel, pwLabel;
JTextField idField;
JPasswordField pwField;
JButton submitButton;
public UserInfo() {
setTitle("用户信息");
setSize(300, 200);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setLayout(new GridLayout(3, 2));
idLabel = new JLabel("身份证号:");
add(idLabel);
idField = new JTextField();
add(idField);
pwLabel = new JLabel("密码:");
add(pwLabel);
pwField = new JPasswordField();
add(pwField);
submitButton = new JButton("提交");
add(submitButton);
submitButton.addActionListener(this);
}
public void actionPerformed(ActionEvent e) {
String id = idField.getText();
char[] pw = pwField.getPassword();
String password = new String(pw);
JOptionPane.showMessageDialog(null, String.format("身份证号:%s,密码:%s", id, password));
}
public static void main(String[] args) {
UserInfo userInfo = new UserInfo();
userInfo.setVisible(true);
}
}
```
这个程序现在可以正常运行,并且在点击提交按钮时,会弹出一个对话框,显示输入的身份证号和密码。
阅读全文