
【JavaFX】ListView
发布日期:2021-05-07 06:59:33
浏览次数:13
分类:精选文章
本文共 3494 字,大约阅读时间需要 11 分钟。
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.ListView;import javafx.scene.control.ScrollToEvent;import javafx.scene.control.SelectionMode;import javafx.scene.control.cell.TextFieldListCell;import javafx.scene.layout.AnchorPane;import javafx.stage.Stage;public class Main extends Application { public static void main(String[] args) { launch(args); } @Override public void start(Stage primaryStage) throws Exception { //数据源 可观察列表 ObservableListobslist = 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 - i"); obslist.add("data - j"); obslist.add("data - k"); obslist.add("data - l"); obslist.add("data - m"); obslist.add("data - n"); obslist.add("data - o"); obslist.add("data - p"); obslist.add("data - q"); obslist.add("data - r"); ListView listView = new ListView (obslist); listView.setPrefHeight(200); Button bu = new Button("按钮"); AnchorPane an = new AnchorPane(); an.getChildren().addAll(listView,bu); AnchorPane.setTopAnchor(listView,100.0); AnchorPane.setLeftAnchor(listView,100.0); //单选或多选 listView.getSelectionModel().setSelectionMode(SelectionMode.MULTIPLE);//多选 //监听 项 listView.getSelectionModel().selectedItemProperty().addListener(new ChangeListener () { @Override public void changed(ObservableValue observable, String oldValue, String newValue) { System.out.println("项 = " + newValue); } }); //监听 索引 listView.getSelectionModel().selectedIndexProperty().addListener(new ChangeListener () { @Override public void changed(ObservableValue observable, Number oldValue, Number newValue) { System.out.println("索引 = " + newValue.intValue()); } }); //滚动事件 listView.scrollTo()执行可以触发 listView.setOnScrollTo(new EventHandler >() { @Override public void handle(ScrollToEvent event) { System.out.println(event.getScrollTarget()); } }); //双击可编辑 - 修改了原始数据 listView.setEditable(true); //工厂方法 listView.setCellFactory(TextFieldListCell.forListView()); Scene scene = new Scene(an); primaryStage.setScene(scene); primaryStage.setWidth(800); primaryStage.setHeight(800); primaryStage.setTitle("JavaFX"); primaryStage.show(); bu.setOnAction(new EventHandler () { @Override public void handle(ActionEvent event) { //单选// listView.getSelectionModel().select("data - g");// listView.scrollTo("data - g");//滚动到// listView.requestFocus();//获得焦点 //多选// listView.getSelectionModel().selectIndices(1,2,4);//按钮按下后选中下标为1,2,4的项// listView.requestFocus();//获得焦点// listView.getSelectionModel().getSelectedItems().forEach(System.out::println); obslist.forEach(System.out::println); } }); }}
参考:
发表评论
最新留言
网站不错 人气很旺了 加油
[***.192.178.218]2025年04月02日 02时27分35秒
关于作者

喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
简单的xml读取存储方法(未优化)
2019-03-05
Nginx---惊群
2019-03-05
2种解法 - 获取一条直线上最多的点数
2019-03-05
项目中常用的审计类型概述
2019-03-05
nodeName与tagName的区别
2019-03-05
(九)实现页面底部购物车的样式
2019-03-05
在vue中给对象扩展属性的方法
2019-03-05
【2021年新书推荐】ASP.NET Core 5 and Angular
2019-03-05
python-day3 for语句完整使用
2019-03-05
mysql 中的数据实现递归查询
2019-03-05
linux下远程上传命令scp
2019-03-05
可重入和不可重入函数
2019-03-05
(2.1)关系模型之关系结构和约束
2019-03-05
深入学习C++
2019-03-05
双系统基础上装三系统教程
2019-03-05
android自定义无边框无标题的DialogFragment替代dialog
2019-03-05
androidstudio同步的时候下载jcenter的库出错解决办法
2019-03-05
ButterKnife使用问题
2019-03-05
java基础--继承
2019-03-05