-1

textfieldアプレットを使用してa とボタンを作成しようとしています。主な問題は、基本的な電卓プログラムのように、1 つの数値を追加してから追加ボタンを押してから数値を追加し、合計を同じテキストフィールドに表示するなど、複数の数値を追加する方法を理解できないように見えることですプログラム。これが私がこれまでに得たものです:

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

try

tf.repaint();

to tell the Component to layout again with the new value.

This is a classic failure in programming. This is only automatic with a valid data binding e.g. when a table is setup with data binding.

EDIT: Your code looks fine so far, the source of the action is the button itself not a 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 に答える