Saturday, September 13, 2014

JavaFX Choice Box example

JavaFX Choice Box is UI controls that provide support for quickly selecting between a few options, something like spinner.


Example code:
package javafxchoicebox;

import javafx.application.Application;
import javafx.beans.value.ObservableValue;
import javafx.collections.FXCollections;
import javafx.event.ActionEvent;
import javafx.scene.Scene;
import javafx.scene.control.Button;
import javafx.scene.control.ChoiceBox;
import javafx.scene.control.Label;
import javafx.scene.layout.VBox;
import javafx.stage.Stage;

/**
 *
 * @web http://java-buddy.blogspot.com/
 */
public class JavaFXChoiceBox extends Application {
    
    @Override
    public void start(Stage primaryStage) {
        
        Label label1 = new Label();
        Label label2 = new Label();
        
        ChoiceBox choiceBox = new ChoiceBox(
            FXCollections.observableArrayList(
                "java-buddy", "Java", "Buddy")
        );
        choiceBox.getSelectionModel().selectFirst();
        choiceBox.getSelectionModel().selectedItemProperty()
            .addListener((ObservableValue observable, 
                    Object oldValue, Object newValue) -> {
                label1.setText((String)newValue);
        });
        
        Button btn = new Button();
        btn.setText("Say 'Hello World'");
        btn.setOnAction((ActionEvent event) -> {
            String selected = choiceBox.getSelectionModel()
                    .getSelectedItem().toString();
            label2.setText("Hello " + selected);
        });
        
        VBox root = new VBox();
        root.getChildren().addAll(choiceBox, btn, label1, label2);
        
        Scene scene = new Scene(root, 300, 250);
        
        primaryStage.setTitle("Hello World!");
        primaryStage.setScene(scene);
        primaryStage.show();
    }

    /**
     * @param args the command line arguments
     */
    public static void main(String[] args) {
        launch(args);
    }
    
}

2 comments:

  1. This comment has been removed by the author.

    ReplyDelete
  2. Also, if I remove the "...selectFirst()" line, I am able to select an item -- one time. It will not let me select anything after that.

    ReplyDelete