ListView

<aside> 🔑 Une liste permet d'afficher plusieurs éléments dans une ou plusieurs colonnes. Plusieurs éléments de la liste peuvent être sélectionnés en même temps. Une ListView peut être associée à un ScrollPane si elle contient beaucoup d'éléments.

</aside>

ListView contenant 4 éléments et le deuxième élément est sélectionné.

ListView contenant 4 éléments et le deuxième élément est sélectionné.


Les RadioButtons, CheckBoxs et ComboBoxs permettent de sélectionner aussi des éléments. Cependant, ils ne sont pas utilisables de la même façon :

ListView<String> list = new ListView<String>();
ObservableList<String> items =FXCollections.observableArrayList (
        "IE", "Firefox", "Chrome", "Edge");
list.setItems(items);
list.setPrefWidth(100);
list.setPrefHeight(75);
list.getSelectionModel().select(1);
list.getSelectionModel().selectedItemProperty().addListener(
        new ChangeListener<String>() {
            public void changed(ObservableValue<? extends String> ov, String old_val, String new_val) {
                System.out.println("old value : "+old_val+", new value : "+new_val);
            }
        });

Pour contrôler la barre défilante d'une liste, il faut mettre la listView dans un ScrollPane et puis configurer la barre défilante du ScrollPane comme dans le code suivant. D'autres composants peuvent être ajoutés à un ScrollPane tels qu'un TextArea, Rectangle, etc.

ScrollPane scrollPane= new ScrollPane();
scrollPane.setContent(list);
scrollPane.hbarPolicyProperty().setValue(ScrollPane.ScrollBarPolicy.NEVER);
scrollPane.vbarPolicyProperty().setValue(ScrollPane.ScrollBarPolicy.AS_NEEDED);

SplitPane

<aside> 🔑 Une SplitPane permet de diviser le contenu de la fenêtre horizontalement ou verticalement en deux parties.

</aside>

Une SplitPane qui divise la fenêtre en deux parties. La partie gauche contient une ListView et la partie droite contient une TextArea.

Une SplitPane qui divise la fenêtre en deux parties. La partie gauche contient une ListView et la partie droite contient une TextArea.


//créer une ListView et une TextArea et les ajouter au SplitPane
ListView<String> list = new ListView<String>();
ObservableList<String> items =FXCollections.observableArrayList (
        "IE", "Firefox", "Chrome", "Edge");
list.setItems(items);

TextArea textArea=new TextArea();
textArea.setFont(Font.font("serif", FontWeight.BOLD, FontPosture.ITALIC,13));

SplitPane splitPane = new SplitPane();
splitPane.setDividerPosition(0, 0.3);
splitPane.getItems().addAll(list, textArea);

TabPane

<aside> 🔑 La TabPane crée un conteneur avec plusieurs onglets. Chaque onglet peut contenir différents composants graphiques.

</aside>

Une fenêtre contenant une TabPane avec quatre onglets.

Une fenêtre contenant une TabPane avec quatre onglets.


TabPane tabPane = new TabPane();
Tab tabStark = new Tab();
ImageView imageViewStark= new ImageView("images/stark.png");
imageViewStark.setFitHeight(25);
imageViewStark.setFitWidth(25);
tabStark.setGraphic(imageViewStark);
tabStark.setText("Stark");
tabStark.setTooltip(new Tooltip("Tab for the house Stark"));
tabStark.setContent(new StackPane(new Label("Stark")));

Tab tabBara = new Tab();
ImageView imageViewBara= new ImageView("images/baratheon.gif");
imageViewBara.setFitHeight(25);
imageViewBara.setFitWidth(25);
tabBara.setGraphic(imageViewBara);
tabBara.setText("Baratheon");
tabBara.setTooltip(new Tooltip("Tab for the house Baratheon"));
tabBara.setContent(new StackPane(new Label("Baratheon")));

Tab tabLannister = new Tab();
ImageView imageViewLannister= new ImageView("images/lannister.gif");
imageViewLannister.setFitHeight(25);
imageViewLannister.setFitWidth(25);
tabLannister.setGraphic(imageViewLannister);
tabLannister.setText("Lannister");
tabLannister.setTooltip(new Tooltip("Tab for the house Lannister"));
tabLannister.setContent(new StackPane(new Label("Lannister")));

Tab tabMartell = new Tab();
ImageView imageViewMartell= new ImageView("images/martell.png");
imageViewMartell.setFitHeight(25);
imageViewMartell.setFitWidth(25);
tabMartell.setGraphic(imageViewMartell);
tabMartell.setText("Martell");
tabMartell.setTooltip(new Tooltip("Tab for the house Martell"));
tabMartell.setContent(new StackPane(new Label("Martell")));

tabPane.getTabs().addAll(tabStark,tabBara,tabLannister,tabMartell);
Scene scene=new Scene(tabPane, 400, 300);

Timer et ProgressBar