Java:如果文本字段具有特定值,如何激活按钮?

时间:2015-06-18 19:24:10

标签: java applet jcreator

我正在创建一个小程序,人们必须输入一个4位数的密码,以便他们可以提取一笔钱。但是,默认情况下,撤消按钮处于停用状态,仅在pin文本字段中输入单个代码时才会激活。最好的方法是什么?

2 个答案:

答案 0 :(得分:1)

您需要创建一个Listener并将其附加到TextField。监听器将在TextField的内容发生更改时触发。让Listener测试TextField的内容,如果正确,则激活Button。

TextField的文档应该为您提供您需要知道的一切。

答案 1 :(得分:0)

DJClayworth的钱是正确的。

如果你需要一个使用纯AWT的具体例子,那么它是:

package com.example;

import java.awt.Button;
import java.awt.Frame;
import java.awt.Panel;
import java.awt.TextField;
import java.awt.event.TextEvent;
import java.awt.event.TextListener;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;

public class Example extends Frame {

    private static final long serialVersionUID = 1L;

    private final Button button;

    public Example() {
        super("Example");

        addWindowListener(new WindowAdapter() { //exit when user closes the frame
            @Override
            public void windowClosing(WindowEvent we) {
                System.exit(0);
            }
        });

        TextField textField = new TextField(4);
        textField.addTextListener(new TextListener() {
            @Override
            public void textValueChanged(TextEvent e) {
                boolean enableButton = textField.getText().length() == 4;
                button.setEnabled(enableButton);
            }
        });

        button = new Button("Submit");
        button.setEnabled(false);

        Panel panel = new Panel();
        add(panel);
        panel.add(textField);
        panel.add(button);

        pack();
        setVisible(true);
    }

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