当我setText("")这样点击重置按钮没有反应,但是这样写set Text(" ")或者set Text("this")重置按钮就有效?
帮你修改了一下, 用 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) {
}
}
不知道你这个问题是否已经解决, 如果还没有解决的话: