5個の2列に整理された10個のテキストフィールドがあります。これらのテキストフィールドにすべてテキストフィールドが書き込まれるまで、一定のボタンを無効にします。私はJava 1.7を使用しています - 私が見つけたすべての例は、Java 6(廃止予定)と8のためのものです。10個のテキストフィールドが入力されるまでボタンをオフにする
誰もが私を通って私を歩くことができますか?私は単にボタンがすべてのテキストフィールドが満たされた後に有効にしたいだけです。どんな助けも高く評価されます。
5個の2列に整理された10個のテキストフィールドがあります。これらのテキストフィールドにすべてテキストフィールドが書き込まれるまで、一定のボタンを無効にします。私はJava 1.7を使用しています - 私が見つけたすべての例は、Java 6(廃止予定)と8のためのものです。10個のテキストフィールドが入力されるまでボタンをオフにする
誰もが私を通って私を歩くことができますか?私は単にボタンがすべてのテキストフィールドが満たされた後に有効にしたいだけです。どんな助けも高く評価されます。
ボタンは、10番目のテキストフィールドが入力された後に有効になります。10番目のテキストフィールドを知る方法がないため、それぞれのボタンにchange listenerを追加します。リスナーは、10個のフィールドが空でないかどうかをチェックします。 tutorialとexampleがあります。
Java 7では、ラムダ式を使用することはできませんので、古い方法で行う必要があります。
電話を使って書かれたコードの原因をフォーマットしてお気軽
... 一つの高速な方法は、それがこのようなtextproperty()だ時に各TextField
変更リスナーに追加することです
:
ChangeListener listener = new ChangeListener(){
@Override
public void changed(ObservableValue observable, String oldValue, String newValue) {
boolean visible = true;
for(TextField field:fieldsArray)
if(field.getText().isEmpty()){
visible=false;
break;
}
button.setVisible(visible);
}
};
textField.textProperty().addListener(changeListener);
ことを忘れないでくださいが1つのリスナーを複数回追加できます。ここでは、より良い
何かがこのようなSimpleBooleanProperty
にボタンvisibleProperty()
をバインドするために、次のようになります。
BooleanProperty visibleProperty = new SimpleBooleanProperty();
button.visibleProperty.bind(visibleProperty);
:
ChangeListener listener = new ChangeListener(){
@Override
public void changed(ObservableValue observable, String oldValue, String newValue) {
boolean visible = true;
for(TextField field:fieldsArray)
if(field.getText().isEmpty()){
visible=false;
break;
}
visibleProperty.set(visible);
}
};
異なる答えが指摘したように、ラムダはJava 7では使用できません – yitzih