0

テキストフィールドに入力されている内容に合わせて javafx ラベルを自動的に更新したいのですが、現在、Enter キーがクリックされたときにのみ変更されます。私はswingとjavafxを組み合わせて使用​​しています。

これは可能ですか?

ありがとう

exprField.addActionListener(new ActionListener() {
        @Override
        public void actionPerformed(ActionEvent e) {
            Platform.runLater(new Runnable() {
                @Override
                public void run() {
                fxLabel.setText(exprField.getText());

                        }
            });
        }
    });
4

1 に答える 1

3

この目的のために Binding-Mechanism を使用できます。

  GridPane p = new GridPane();

    TextField tf = new TextField("DEFAULT");
    Label l1 = new Label("...");
    l1.textProperty().bind(tf.textProperty());
    p.add(tf, 0, 0);
    p.add(l1, 1, 0);
    Scene sc = new Scene(p, 500, 500);
    arg0.setScene(sc);
    arg0.show();

このコードは、テキスト ボックスとラベルをグリッドペインに設定します。ラベルのテキスト プロパティは、テキスト フィールドのテキスト プロパティにバインドされます。つまり、テキスト フィールドが変更されるとすぐに、ラベルのテキストは、現在テキスト フィールドにあるテキストに従って更新されます。

詳細については、http: //docs.oracle.com/javafx/2/binding/jfxpub-binding.htmを参照してください。

于 2013-11-04T21:54:35.970 に答える