ListView和ComboBox示例代码

背景 ( Background )

Below is an example of a JavaFX application that shows how to use the ListView and ComboBox controls. Both are initially populated by an ObservableList. When the user selects an item in the ListView or an option from the ComboBox drop-down list, a corresponding label shows what value is selected.

下面是一个JavaFX应用程序的示例,该示例显示了如何使用ListViewComboBox控件。 两者最初都由ObservableList填充。 当用户在ListView选择一项或从ComboBox下拉列表中选择一个选项时,相应的标签将显示所选的值。

This is done by adding a ChangeListener to the SelectionModel of the ListView and the ComboBox controls.

这是通过将ChangeListener添加到ListViewComboBox控件的SelectionModel来完成的。

Java代码 ( Java Code )

//List of import statements needed to reference the controls
import javafx.application.Application;
import javafx.beans.value.ChangeListener;
import javafx.beans.value.ObservableValue;
import javafx.scene.Scene;
import javafx.scene.layout.HBox;
import javafx.stage.Stage;
import javafx.scene.control.Label;
import javafx.scene.control.ComboBox;
import javafx.scene.control.ListView;
import javafx.collections.ObservableList;
import javafx.collections.FXCollections;
import javafx.scene.control.SelectionMode;
public class JavaFXControls extends Application {
//Main entry point into the JavaFX application
@Override
public void start(Stage primaryStage) {
//Use HBOX layout panes to space out the controls
//in a single row
HBox comboBox = new HBox();
HBox listBox = new HBox();
HBox controlBox = new HBox();
//An Observable list to populate the ListView with items
ObservableList countries = FXCollections.observableArrayList(
"England", "Germany", "France", "Israel", "South Africa", "U.S.A.", "Australia");
ListView list = new ListView(countries);
//Set the width of the ListView to be 100 pixels
list.setPrefWidth(100);
//Allow multiple selections from the Listview
list.getSelectionModel().setSelectionMode(SelectionMode.MULTIPLE);
//Create a naming label to highlight the selected item from the ListView
Label listLabel = new Label("Selected List Item: ");
//Create a label to hold the value of the selected item of the ListView
final Label listSelection = new Label();
listSelection.setPrefWidth(200);
//Set up a changelistener to listen for the items being selected in the ListView
list.getSelectionModel().selectedItemProperty().addListener(
new ChangeListener() {
public void changed(ObservableValue ov,
String old_val, String new_val) {
//Set the label with the selected item
listSelection.setText(new_val);
}
});
//Add the ListView and two labels to the HBOX layout pane
listBox.getChildren().add(list);
listBox.getChildren().add(listLabel);
listBox.getChildren().add(listSelection);
//An Observable list to populate the ComboBOx with options
ObservableList fruits = FXCollections.observableArrayList(
"Apple", "Banana", "Pear", "Strawberry", "Peach", "Orange", "Plum",
"Melon", "Cherry", "Blackberry", "Melon", "Cherry", "Blackberry");
ComboBox fruit = new ComboBox(fruits);
//Set the dropdown list to 13 so all the options can be seen at one time
fruit.setVisibleRowCount(13);
//Create a naming label to highlight the selected option from the ComboBOx
Label comboLabel = new Label("Selected Combo Item: ");
//Create a label to hold the value of the selected option of the ComboBox
final Label comboSelection = new Label();
fruit.getSelectionModel().selectedItemProperty().addListener(
new ChangeListener() {
public void changed(ObservableValue ov,
String old_val, String new_val) {
//Set the label with the selected option
comboSelection.setText(new_val);
}
});
//Add the ComboBox and two labels to the HBOX layout pane
comboBox.getChildren().add(fruit);
comboBox.getChildren().add(comboLabel);
comboBox.getChildren().add(comboSelection);
//Add the two HBOXes to another HBOX to space out the controls
controlBox.getChildren().add(listBox);
controlBox.getChildren().add(comboBox);
//Add the main HBOX layout pane to the scene
Scene scene = new Scene(controlBox, 800, 250);
//Show the form
primaryStage.setTitle("Hello World!");
primaryStage.setScene(scene);
primaryStage.show();
}
/**
* @param args the command line arguments
*/
public static void main(String[] args) {
launch(args);
}
}

翻译自: https://www.thoughtco.com/listview-and-combobox-example-program-2033940

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值