参考書でJavaFXを勉強しています。
分からないコードをネットで調べながら勉強しているのですが、コードが長くて
よくわかりません。同じコードについてteratailのなかに説明があり、cb.getSelectionModel().selectedItemProperty().addListenerまでは
何となくわかりました。
cb.getSelectionModel().selectedItemProperty().addListener();の中を
説明してもらえませんか。
個々のChangeListener<T>インターフェース、
ObservableValue<? extends String>ov,String old_val,String new_val
changed()メソッド、などは検索して大体わかっているつもりです。
よろしくお願いいたします。
//チェックボックスの選択項目として色の名前を登録し、ユーザーが //リストの中から色を選択したら、四角形の色をその色に変更するプログラム package application; import javafx.application.Application; import javafx.beans.value.ChangeListener; import javafx.beans.value.ObservableValue; import javafx.scene.Scene; import javafx.scene.control.ChoiceBox; import javafx.scene.layout.HBox; import javafx.scene.paint.Color; import javafx.scene.shape.Rectangle; import javafx.stage.Stage; public class Choice1 extends Application { @Override public void start(Stage stage) throws Exception { stage.setTitle("Choice"); stage.setWidth(260); stage.setHeight(180); // Rectangle rect = new Rectangle(200,200); ChoiceBox<String> cb = new ChoiceBox<String>(); //ChoiceBoxは、ドロップダウンリストから項目を選択できるように //するためののコントロールです。 cb.getItems().addAll("RED","BLUE","GREEN","LIGHTGRAY"); //ドロップダウンリストに項目を登録するには,getItems().add()や // getItems().addAll()を使います。 /* ユーザーがリストの項目を選択したというイベントを処理するときには、 getSelectionModel().selectedItemProperty()で選択された項目の プロパティを取得してaddListener()でイベントハンドラに登録します。 */ cb.getSelectionModel().selectedItemProperty().addListener( new ChangeListener<String>() { @Override public void changed(ObservableValue<? extends String>ov, String old_val,String new_val) { rect.setFill(Color.valueOf(cb.getValue())); } }); cb.getSelectionModel().selectFirst(); //コードの項目を選択したいときには、getSelectionModel().selectFirst()や //getSelectionModel().select()などを使います。 HBox root = new HBox(); root.getChildren().addAll(cb,rect); stage.setScene(new Scene(root)); stage.show(); } }
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。