Ответы пользователя по тегу JavaFX
  • Удаление элемента из JFXTreeTableView?

    MrJcnby
    @MrJcnby Автор вопроса
    Как оказалось был баг в библиотеке. ребята все исправили - но возможно кому-то пригодится ответ. Если вы хотите удалить строку из JFXTreeTableView, вы должны удалять элемент из ObservableList! Как пример:
    создаем ObservableList, содержащий коллекцию того что мы будем пихать в таблицу :
    ObservableList<Company> companies = FXCollections.observableArrayList();
    companies.add(new Company(1, "Test company", "test c.","1231123", 1,1));

    Создаем для нашей таблицы root и пихаем его в таблицу:
    create root :TreeItem<Company> root = new RecursiveTreeItem<Company>(companies,RecursiveTreeObject::getChildren); 
    treeView.setRoot(root);

    теперь когда мы хотим удалить строку из таблицы, мы просто удаляем его из листа:
    companies.remove(treeView.getSelectionModel().selectedItemProperty().get().getValue());

    П.С.
    treeView.getRoot().getChildren().remove(treeView1.getSelectionModel().selectedItemProperty().get());

    - удалить строку таким кодом не получится. да строка пропадет с основного вида таблицы - но при группировке любой колонки - вы увидите эту удаленную строку.
    Ответ написан
    Комментировать
  • Не работает код на JavaFX?

    MrJcnby
    @MrJcnby
    Наверное вы делали эти в качестве пробы javaFX. Тем не менее пару советов :
    Во первых: архитектура в корне не правильная - не вешайте на main класс ничего что связано с элементами формы. Гораздо правильнее сделать новый контроллер для sample.fxml - и естественно сделать его заимплементить его на инициализацию (implements Initializable) - тогда метод initialize будет вызываться при загрузке.
    Во вторых: чтобы тупо заработало : в конце метода public void start добавте
    pane.getScene().setOnKeyPressed(event -> {
                if (event.getCode() == KeyCode.UP){
                    System.out.println("2");
                }
            });
    Ответ написан