DatePicker in javafx TableCell

前端 未结 4 1375
挽巷
挽巷 2021-01-22 18:31

I have implemented a custom datePickerTableCell to show a date picker on cell edit. I am using the ExtFX DatePicker (https://bitbucket.org/sco0ter/extfx/overview). Everything wo

相关标签:
4条回答
  • 2021-01-22 19:14

    See if this example helps. It uses Java 8 and the DatePicker control from there.

    0 讨论(0)
  • 2021-01-22 19:14

    This example may help too. It uses a DatePicker and TableView control with Java 8.

    0 讨论(0)
  • 2021-01-22 19:29

    Maybe have a look at this example. It uses a color picker but works as well for a date picker:

    public class ColorTableCell<T> extends TableCell<T, Color> {    
        private final ColorPicker colorPicker;
    
        public ColorTableCell(TableColumn<T, Color> column) {
            this.colorPicker = new ColorPicker();
            this.colorPicker.editableProperty().bind(column.editableProperty());
            this.colorPicker.disableProperty().bind(column.editableProperty().not());
            this.colorPicker.setOnShowing(event -> {
                final TableView<T> tableView = getTableView();
                tableView.getSelectionModel().select(getTableRow().getIndex());
                tableView.edit(tableView.getSelectionModel().getSelectedIndex(), column);       
            });
            this.colorPicker.valueProperty().addListener((observable, oldValue, newValue) -> {
                if(isEditing()) {
                    commitEdit(newValue);
                }
            });     
            setContentDisplay(ContentDisplay.GRAPHIC_ONLY);
        }
    
        @Override
        protected void updateItem(Color item, boolean empty) {
            super.updateItem(item, empty);  
    
            setText(null);  
            if(empty) {     
                setGraphic(null);
            } else {        
                this.colorPicker.setValue(item);
                this.setGraphic(this.colorPicker);
            } 
        }
    }
    

    If you're on Java 7, replace the lambdas with anonymous inner classes, but it should work as well. Full blog post is here.

    0 讨论(0)
  • 2021-01-22 19:31

    I faced a similar issue when using a TextArea as table cells. The issue turns out to be I was using startEdit in the TableCell implementation. Using TableView#edit instead of startEdit resolved the issue.

    0 讨论(0)
提交回复
热议问题