栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

如何在JavaFX表格视图中添加按钮

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

如何在JavaFX表格视图中添加按钮

为了能够呈现列,

TableColumn
需要cellValueFactory。但是,“操作”列在基础数据模型中不存在。在这种情况下,我只给cellValueFactory一个虚拟值并继续:

public class JustDoIt extends Application {    private final TableView<Person> table = new TableView<>();    private final ObservableList<Person> data = FXCollections.observableArrayList(         new Person("Jacob", "Smith"),         new Person("Isabella", "Johnson"),         new Person("Ethan", "Williams"),         new Person("Emma", "Jones"),         new Person("Michael", "Brown") );    public static void main(String[] args) {        launch(args);    }    @Override    public void start(Stage stage) {        stage.setWidth(450);        stage.setHeight(500);        TableColumn firstNameCol = new TableColumn("First Name");        firstNameCol.setCellValueFactory(new PropertyValueFactory<>("firstName"));        TableColumn lastNameCol = new TableColumn("Last Name");        lastNameCol.setCellValueFactory(new PropertyValueFactory<>("lastName"));        TableColumn actionCol = new TableColumn("Action");        actionCol.setCellValueFactory(new PropertyValueFactory<>("DUMMY"));        Callback<TableColumn<Person, String>, TableCell<Person, String>> cellFactory     = //     new Callback<TableColumn<Person, String>, TableCell<Person, String>>() { @Override public TableCell call(final TableColumn<Person, String> param) {     final TableCell<Person, String> cell = new TableCell<Person, String>() {         final Button btn = new Button("Just Do It");         @Override         public void updateItem(String item, boolean empty) {  super.updateItem(item, empty);  if (empty) {      setGraphic(null);      setText(null);  } else {      btn.setonAction(event -> {          Person person = getTableView().getItems().get(getIndex());          System.out.println(person.getFirstName()       + "   " + person.getLastName());      });      setGraphic(btn);      setText(null);  }         }     };     return cell; }        };        actionCol.setCellFactory(cellFactory);        table.setItems(data);        table.getColumns().addAll(firstNameCol, lastNameCol, actionCol);        Scene scene = new Scene(new Group());        ((Group) scene.getRoot()).getChildren().addAll(table);        stage.setScene(scene);        stage.show();    }    public static class Person {        private final SimpleStringProperty firstName;        private final SimpleStringProperty lastName;        private Person(String fName, String lName) { this.firstName = new SimpleStringProperty(fName); this.lastName = new SimpleStringProperty(lName);        }        public String getFirstName() { return firstName.get();        }        public void setFirstName(String fName) { firstName.set(fName);        }        public String getLastName() { return lastName.get();        }        public void setLastName(String fName) { lastName.set(fName);        }    }}


转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/486385.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号