从动作监听器获得答案

时间:2016-05-03 01:21:37

标签: java swing actionlistener

我正在创建一个用户名确认框,我需要确认输入到文本字段的文本是否与变量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();

    }

}

1 个答案:

答案 0 :(得分:2)

Action()构造函数中,您必须向框架添加actionlistener:

addActionListener(this);

以使其发挥作用;

此外,您通过.equals()比较字符串,因为字符串是对象。堆栈不存储字符串的值,堆就是这样。要比较字符串的值,您必须调用t.getText().equals(name)

actionPerformed()课程中进行更改,您就可以开始了!