代码
package fx.com;
import javafx.application.Application;
import javafx.beans.value.ChangeListener;
import javafx.beans.value.ObservableValue;
import javafx.collections.FXCollections;
import javafx.collections.ObservableList;
import javafx.event.ActionEvent;
import javafx.event.EventHandler;
import javafx.scene.Scene;
import javafx.scene.control.Button;
import javafx.scene.control.Label;
import javafx.scene.control.ListView;
import javafx.scene.control.SelectionMode;
import javafx.scene.layout.AnchorPane;
import javafx.stage.Stage;
public class Main extends Application
{
private final Stage mainstage = new Stage();
public static void main(String[] args) {
launch(args);
}
public void start(Stage primaryStage) throws Exception
{
ObservableList<String> obslist = FXCollections.observableArrayList();
obslist.add("data - a");
obslist.add("data - b");
obslist.add("data - c");
obslist.add("data - d");
obslist.add("data - e");
obslist.add("data - f");
obslist.add("data - g");
obslist.add("data - h");
obslist.add("data - l");
obslist.add("data - j");
ListView<String> listView = new ListView<String>(obslist);
//listView.getItems().add("hoi");
listView.setPlaceholder(new Label("标签"));
listView.setPrefWidth(300);
listView.setPrefHeight(200);
// listView.setOrientation(Orientation.HORIZONTAL);//设置水平方向
listView.getSelectionModel().setSelectionMode(SelectionMode.MULTIPLE);//多选模式
listView.getSelectionModel().selectedItemProperty().addListener(new ChangeListener<String>() {
public void changed(ObservableValue<? extends String> observable, String oldValue, String newValue) {
System.out.println(newValue);
}
});//获得选中的数据
listView.getSelectionModel().selectedIndexProperty().addListener(new ChangeListener<Number>() {
public void changed(ObservableValue<? extends Number> observable, Number oldValue, Number newValue) {
System.out.println(newValue);
}
});//获得选中索引
Button bu = new Button("按钮");
AnchorPane ap = new AnchorPane();
ap.getChildren().addAll(listView,bu);
ap.setTopAnchor(listView,100.0);
ap.setLeftAnchor(listView,100.0);
Scene mainscene = new Scene(ap);
mainstage.setScene(mainscene);
mainstage.setTitle("药品管理系统");
mainstage.setWidth(800);
mainstage.setHeight(800);
mainstage.setResizable(false);
mainstage.show();
bu.setOnAction(new EventHandler<ActionEvent>()
{
@Override
public void handle(ActionEvent event)
{
// listView.getSelectionModel().select(0);//选中第0行
// listView.requestFocus();//让选中回到原位
// listView.getSelectionModel().select("data - c");
listView.getSelectionModel().selectIndices(2,4);//多选
listView.scrollTo("data - j");//让滚动条滚动到j的位置上
listView.requestFocus();
obslist.add("haha");
obslist.set(0,"doifho");//修改0行
// obslist.remove(1);//删除1行
System.out.println(listView.getSelectionModel().getSelectedIndices());//获得当前选择的索引
listView.getSelectionModel().getSelectedItems().forEach(System.out::println);
System.out.println(listView.getSelectionModel().getSelectedItems());//当前的值
}
});
}
}
具体使用看注释