もっと詳しく

リストはもう少し複雑ですが、JavaFXを使用するとリストでできることがたくさんあるため、操作がはるかに楽しくなります。 リストオブジェクトを作成するためにインスタンス化する必要があるクラスは、ComboBoxという名前です。 このクラスは、リストの作成に使用されるクラスの大きなファミリーの1つにすぎず、ルートクラスは抽象クラスComboBoxBaseです。 リストの目的の動作に応じて、単一または複数の選択をサポートする場合、リストを編集可能にするかどうかを指定する場合は、適切な実装を選択する必要があります。 この場合、ComboBoxクラスは要件に一致します。単一要素セクションをサポートする編集不可能なリストが必要です。 ComboBoxには、現在のユーザー入力を返すvalueProperty()メソッドがあります。 ユーザー入力は、ドロップダウンリストからの選択、またはリストが編集可能であるときにユーザーが手動で提供した入力に基づくことができます。 BorderPaneの上部にリストを追加し、以前に宣言したTextAreaに選択した値を記録するリスナーを追加するコードを見てみましょう。

private static String[] data = {"John Mayer", "Frank Sinatra",
   "Seth MacFarlane", "Nina Simone", "BB King", "Peggy Lee"};
...
ComboBox comboBox = new ComboBox();
comboBox.getItems().addAll(data);
borderPane.setTop(comboBox);
comboBox.valueProperty().addListener(
  new ChangeListener() {
    @Override
     public void changed(ObservableValue extends String> observable,
         String oldValue, String newValue) {
         textArea.appendText(newValue + "n");
      }
});

デフォルトでは、ComboBoxウィジェットは値を設定しません。 デフォルト値をComboBoxに設定する場合は、「setValue」メソッドを使用します。

例えば:

ObservableList<String> hobbies = FXCollections.observableArrayList("Tennis", "Football", "Cricket", "CoCO", "Rugby", "kabaddy");
ComboBox<String> hobbiesComboBox = new ComboBox<>(hobbies);
hobbiesComboBox.setVisibleRowCount(3);
hobbiesComboBox.setValue("Cricket");

以下の動作するアプリケーションを見つけてください。

ComboBoxApp.java

パッケージcom.sample.demos;

import javafx.application.Application;
import javafx.collections.FXCollections;
import javafx.collections.ObservableList;
import javafx.scene.Scene;
import javafx.scene.control.ComboBox;
import javafx.scene.layout.HBox;
import javafx.stage.Stage;

public class ComboBoxApp extends Application {

 @Override
 public void start(Stage primaryStage) throws Exception {

  ObservableList<String> hobbies = FXCollections.observableArrayList("Tennis", "Football", "Cricket", "CoCO",
    "Rugby", "kabaddy");
  ComboBox<String> hobbiesComboBox = new ComboBox<>(hobbies);
  hobbiesComboBox.setVisibleRowCount(3);
  hobbiesComboBox.setValue("Cricket");

  HBox hBox = new HBox(10, hobbiesComboBox);

  primaryStage.setScene(new Scene(hBox));
  primaryStage.setTitle("Combo Box Example");
  primaryStage.setWidth(900);
  primaryStage.setHeight(500);
  primaryStage.show();
 }

}

TestFX.java

package com.sample.demos;

import javafx.application.Application;

public class TestFX {
 public static void main(String args[]) {
  Application.launch(ComboBoxApp.class, args);
 }
}

The post コンボボックスに値を設定する–オタク日記 appeared first on Gamingsym Japan.