美文网首页
JavaFx中TableView使用CheckBox

JavaFx中TableView使用CheckBox

作者: 朋好友 | 来源:发表于2017-01-18 09:53 被阅读613次

    实现了TableView中使用CheckBox可点击,并可以获取值

    Paste_Image.png

    直接来Demo 两个类

    application.model 包下 Person2
    //========================
    package application.model;

    import javafx.scene.control.CheckBox;

    //The Data Model
    public class Person2 {

    private CheckBox checkBox = new CheckBox();
    
    /*
     * Constructors
     */
    public Person2(boolean checkbox) {
        checkBox.setSelected(checkbox);
    }
    
    public Person2() {
        this(false);
    }
    
    public CheckBox getCheckBox() {
        return checkBox;
    }
    
    public void setCheckBox(CheckBox checkBox) {
        this.checkBox = checkBox;
    }
    

    }

    //===================
    application 包下main
    //=============================================
    package application;

    import java.util.ArrayList;
    import java.util.List;

    import application.model.Person2;
    import javafx.application.Application;
    import javafx.collections.FXCollections;
    import javafx.event.ActionEvent;
    import javafx.event.EventHandler;
    import javafx.scene.Scene;
    import javafx.scene.control.Button;
    import javafx.scene.control.CheckBox;
    import javafx.scene.control.TableColumn;
    import javafx.scene.control.TableView;
    import javafx.scene.control.cell.PropertyValueFactory;
    import javafx.scene.layout.VBox;
    import javafx.stage.Stage;

    public class Main extends Application {

    VBox root;
    List<Person2> personList;
    
    @Override
    public void start(Stage primaryStage) {
        initView();
        try {
            Scene scene = new Scene(root,400,400);
            primaryStage.setScene(scene);
            primaryStage.show();
        } catch(Exception e) {
            e.printStackTrace();
        }
    }
    
    public static void main(String[] args) {
        launch(args);
    }
    
    //这里面是源代码
    private void initView() {
        
        personList = new ArrayList<Person2>();
        personList.add( new Person2(true));
        personList.add( new Person2(false));
        
        TableView<Person2> tblView = new TableView<Person2>();
        
        tblView.setItems(FXCollections.observableList(personList) );
        
        TableColumn<Person2,CheckBox> registered_col = new TableColumn<Person2,CheckBox>("Registered"); 
        registered_col.setCellValueFactory(new PropertyValueFactory<Person2,CheckBox>("checkBox"));
        tblView.getColumns().addAll(registered_col);
    
        tblView.setColumnResizePolicy(TableView.CONSTRAINED_RESIZE_POLICY);
        
        Button button = new Button(" 进行数据获取");
        button.setOnAction(new EventHandler<ActionEvent>() {
            
            @Override
            public void handle(ActionEvent event) {
                sysoData();
            }
        });
        
        root = new VBox();
        root.getChildren().addAll(tblView,button);
    }
    
    public void sysoData() {
        for (Person2 person : personList) {
            boolean registered = person.getCheckBox().isSelected();
            System.out.print(registered);
        }
        System.out.println();
    }
    

    }

    //============================================

    相关文章

      网友评论

          本文标题:JavaFx中TableView使用CheckBox

          本文链接:https://www.haomeiwen.com/subject/clbvbttx.html