Необходимо вызвать встроенную кнопку Table Table в JavaFX TableView - PullRequest
0 голосов
/ 30 января 2019

У меня есть приложение, в котором TableView будет создаваться динамически на основе запроса к базе данных.Это означает, что мое приложение будет иметь несколько таблиц с разными столбцами.

Я должен отобразить отдельную кнопку, чтобы показать / скрыть столбцы.Я знаком с кнопкой меню таблицы, вызванной table.setTableMenuButtonVisible().К сожалению, я не могу использовать встроенную кнопку на экране в пользовательском интерфейсе, хотя я хотел бы использовать ее функциональность.

JavaFX TableView showing menu button

Япо сути, ищет table.getTableMenu().show() вид вызова.Но я не могу найти, где это встроенный метод любого рода.Есть ли способ, которым я могу вызвать действие этой кнопки из кнопки пользовательского интерфейса моего собственного дизайна?

1 Ответ

0 голосов
/ 30 января 2019

На самом деле, я ошибся в своем комментарии: можно найти угловой регион и вызвать его mousePressedHandler без отражения.

Следующий фрагмент кода открывает угловое меню, как если бы оно было щелкнуто напрямую (по крайней мере, в fx11, и все еще грязно, полагаясь на подробности реализации, что открытие инициируется событием mousePressed):

Button showCorner = new Button("open menu button");
showCorner.addEventHandler(MouseEvent.MOUSE_PRESSED, e -> {
    Node corner = table.lookup(".show-hide-columns-button");
    corner.fireEvent(e);
});
...