关于#java#的问题:当我setText("")这样点击重置按钮没有反应,但是这样写set Text(" ")或者set Text("this")重置按钮就有效

当我setText("")这样点击重置按钮没有反应,但是这样写set Text(" ")或者set Text("this")重置按钮就有效?

img

帮你修改了一下, 用 swing包的类,J 打头的

import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.JTextField;
import java.awt.GridLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.KeyEvent;
import java.awt.event.KeyListener;
import java.awt.event.WindowEvent;
import java.awt.event.WindowListener;

public class LoginFrame extends JFrame implements ActionListener, KeyListener, WindowListener {
    private JButton submit;
    private JButton reset;
    private JTextField username;
    private JTextField password;

    public LoginFrame() {
        super("用户登录");
        //网格布局
        setLayout(new GridLayout(3, 2));
        //添加用户标签和文本框
        JLabel username1 = new JLabel("用户名:");
        add(username1);
        username = new JTextField(20);
        add(username);
        //添加密码标签和文本框
        JLabel password1 = new JLabel("密码:");
        add(password1);
        password = new JTextField(20);
        add(password);
        //password.setEchoChar('*');
        //添加提交按钮
        submit = new JButton("提交");
        submit.addActionListener(this);
        add(submit);
        //添加重置按钮
        reset = new JButton("重置");
        reset.addActionListener(this);
        add(reset);
        //设置监听器
        username.addActionListener(this);
        password.addActionListener(this);
        password.addKeyListener(this);
        addWindowListener(this);
        //窗口大小位置和可见性
        setSize(300, 150);
        setLocationRelativeTo(null);
        setVisible(true);

    }

    public static void main(String[] args) {
        new LoginFrame();
    }

    public void actionPerformed(ActionEvent e) {
        Object source = e.getSource();
        if (source == submit || source == password) {
            String username1 = username.getText();
            String password1 = password.getText();
            if (username1.equals("admin") && password1.equals("123456")) {
                JOptionPane.showMessageDialog(this, "登录成功");
            } else {
                JOptionPane.showMessageDialog(this, "用户名或密码错误");
                username.setText("");
                password.setText("");
            }
        } else if (source == reset) {
            username.setText("");
            password.setText("");
            username.requestFocus();
        } else if (source == username) {
            username.setText("");
            password.setText("");
            password.requestFocus();
        }
    }

    public void keyPressed(KeyEvent e) {
        int keyCode = e.getKeyCode();
        if (keyCode != KeyEvent.VK_BACK_SPACE && !Character.isDigit(e.getKeyChar())) {
            e.consume();
        }
    }

    public void keyTyped(KeyEvent e) {

    }

    public void keyReleased(KeyEvent e) {
    }

    @Override
    public void windowClosing(WindowEvent e) {
        System.exit(0);
    }

    @Override
    public void windowOpened(WindowEvent e) {
    }

    @Override
    public void windowClosed(WindowEvent e) {
    }

    @Override
    public void windowIconified(WindowEvent e) {
    }

    @Override
    public void windowDeiconified(WindowEvent e) {
    }

    @Override
    public void windowActivated(WindowEvent e) {
    }

    @Override
    public void windowDeactivated(WindowEvent e) {
    }
}

不知道你这个问题是否已经解决, 如果还没有解决的话:

如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^