-1

我正在尝试textfield使用小程序编写一个和一个按钮。主要问题是我似乎无法弄清楚如何添加多个数字,例如一个数字,然后点击添加按钮,然后点击数字,然后添加按钮并在相同的文本字段中显示总数,就像基本的计算器程序一样。这是我到目前为止所得到的:

import java.applet.Applet;
import java.awt.Button;
import java.awt.TextField;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;


public class addition extends Applet implements ActionListener {
    TextField tf;
    Button btnAdd;
    Button btnEqual;
    Button btnExit;

    public addition() {
        tf = new TextField(15);
        btnAdd = new Button(" + ");
        btnEqual = new Button(" = ");
        btnExit = new Button("exit");
    }

    public void init() {
        add(tf);
        add(btnAdd);
        add(btnEqual);
        add(btnExit);
    }

    @Override
    public void actionPerformed(ActionEvent e) {
        if (e.getSource() == btnAdd.getFocusListeners()) {
            tf.setText("text goes here");
        }
    }
}
4

1 回答 1

0

尝试

tf.repaint();

告诉组件使用新值再次布局。

这是编程中的经典失败。这仅对有效的数据绑定是自动的,例如当使用数据绑定设置表时。

编辑: 到目前为止,您的代码看起来不错,动作的来源是按钮本身而不是 FocusListener :

@Override
public void actionPerformed(ActionEvent e) {
    if (e.getSource() == btnAdd) {
        tf.setText("text goes here");
        // create sum here (class variable, should be 0 at start)
        // update TF with new value
        // tell TF or Panel underneath to layout newly  
    }
    if (e.getSource() == btnEqual){
        // update value
        // layout newly
    }
}
于 2013-01-08T08:26:17.357 回答