我正在创建一个用户名确认框,我需要确认输入到文本字段的文本是否与变量name
中已定义的类型匹配。
我不知道如何得到它。我一直在尝试实现以下代码,在按下按钮后执行的操作中,它将验证文本字段是否与变量名称匹配。
代码如下。
public class Action extends JFrame implements ActionListener
{
JLabel l;
JTextField t;
JButton b;
final String name = "harry";
public Action()
{
l = new JLabel("Name");
l.setBounds(10, 10, 100, 33);
t = new JTextField();
t.setBounds(60, 10, 100, 30);
b = new JButton("send text");
b.setBounds(80, 120, 100, 40);
add(l);
add(t);
add(b);
setSize(300, 300);
setLayout(null);
setVisible(true);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
@Override
public void actionPerformed(ActionEvent e)
{
if (t.getText() == name)
{
JOptionPane.showMessageDialog(this, "you mach");
}
else
{
JOptionPane.showMessageDialog(this, "you dont");
}
}
public static void main(String[] args)
{
new Action();
}
}
答案 0 :(得分:2)
在Action()
构造函数中,您必须向框架添加actionlistener:
addActionListener(this);
以使其发挥作用;
此外,您通过.equals()
比较字符串,因为字符串是对象。堆栈不存储字符串的值,堆就是这样。要比较字符串的值,您必须调用t.getText().equals(name)
在actionPerformed()
课程中进行更改,您就可以开始了!