2014-12-16 2 views
0

Я создал TableView, что я заселена с ObservableList, Некоторые колонки в моей таблице CheckBox, и я хочу, что CheckBox связываются с моделью объекта, который я создал. До сих пор результат, который я получаю есть: Если это текст, который я могу увидеть результат, но если это CheckBox всегда бесконтрольноКак заполнить TableView, которые содержат CheckBox в JavaFX

+0

Пожалуйста, покажите код. –

ответ

0

Exampla из флажка в Tableview:

  1. детали показанного в таблица: Член

    public class Member { 
        private StringProperty myName; 
        private BooleanProperty myCheck; 
    
        public Member(String name, boolean checked) { 
         myName = new SimpleStringProperty(name); 
         myCheck = new SimpleBooleanProperty(checked); 
        } 
    
        public StringProperty nameProperty() { return myName; }  
        public BooleanProperty checkProperty() { return myCheck; } 
    } 
    
  2. Таблица: (Теперь с помощью встроенного в классе CheckBoxTableCell, благодаря James.D)

    ObservableList<Member> members = FXCollections.observableArrayList(); 
    
    members.add(new Member("peter", true)); 
    members.add(new Member("gernot", true)); 
    members.add(new Member("fritz", false)); 
    for (int i = 1000; i < 2000; i++) members.add(new Member("N"+i, (i%5==0))); 
    
    TableView<Member> table = new TableView<Member>(); 
    table.prefHeightProperty().bind(box.heightProperty()); 
    table.setItems(members); 
    
    TableColumn<Member,String> c1 = new TableColumn<Member,String>("Name"); 
    c1.setCellValueFactory(new PropertyValueFactory<Member,String>("name")); 
    table.getColumns().add(c1); 
    
    TableColumn<Member,Boolean> c2 = new TableColumn<Member,Boolean>("Membership"); 
    c2.setCellValueFactory(new PropertyValueFactory<Member,Boolean>("check")); 
    c2.setCellFactory(column -> new CheckBoxTableCell()); 
    table.getColumns().add(c2); 
    
    pane.getChildren().addAll(table); 
    
  3. Результат:

enter image description here

+3

Для этого есть [встроенный класс] (https://docs.oracle.com/javase/8/javafx/api/javafx/scene/control/cell/CheckBoxTableCell.html). –

+0

Большое спасибо, это работает, но я хочу знать, что такое diffrrence между SimpleStringProperty nad StringProperty – eniniz

+0

Я пробовал их, и я думаю, что SimpleStringProperty, например, разрешил мне изменять данные, но с помощью StringProperty я не могу этого сделать. Если я говорю правду, то я действительно хочу показать пользователю то, что он сделал, и в то же время разрешил ему изменить его, если он хочет – eniniz

Смежные вопросы