0

javafx-2 ComboBox には、(まだ) 文書化されていない機能があり、まったく新しいコンボ ボックスの概念が舞台裏で提案されているようです。

簡単に言えば、value プロパティは items コレクションの要素の 1 つに制限されていません

ユーザーはアイテムの 1 つしか選択できませんが、setValue メソッドを使用すると、値がコレクションに属していなくても値を設定できます (もちろん、正しい型であることが前提ですが、これはジェネリックによって強制されます)。

同様に、valueProperty が他のプロパティにバインドされている場合、valueProperty は、items プロパティ内にあるかどうかに関係なく、他のプロパティの値に従います。

これは、後で項目コレクションから削除される項目をユーザーが選択する場合など、いくつかの状況で役立ちます。

この機能は文書化されていない (または文書を見つけることができなかった) ため、信頼できるかどうか、または何らかの「副作用」を考慮する必要があるため、削除される可能性があります。フレームワークの将来のリリース。

SSCE (インポートを修正するだけ):

public class T08 extends Application {
@Override public void start(Stage primaryStage) throws Exception {
    ComboBox<String> c = new ComboBox(FXCollections.observableArrayList("item-a", "item-b"));
    primaryStage.setScene(new Scene(c));
    c.setValue("outsider-item");
    primaryStage.show();
} 
}

出力は次のとおりです。ご覧のとおり、コンボには「outsider-item」値が表示されますが、リストには提案されていません。
getValue() メソッドは、コンポーネントによって表示される値と一貫性があります。 ここに画像の説明を入力

4

1 に答える 1

1

この動作は既知であり、

問題http://javafx-jira.kenai.com/browse/RT-27543を提出して 、javadoc でこの動作を説明しました。

これは修正済みのテスト済みの動作であり、変更される予定はありません。

于 2013-01-06T13:16:50.447 に答える