Я новичок в функции SpreadSheet ControlsFx Api. Я хотел бы открыть Dialog
правой кнопкой мыши Spreadsheetcell
из SpreadsheetView
в Javafx. Любая помощь приветствуется.Ячейка электронных таблиц JavaFx Щелкните правой кнопкой мыши Открыть диалог
ответ
это код, где вы можете от стандартной ContextMenu и инвентарь собственного обработчика с Dialog
, в этом примере TextInputDialog
:
SpreadsheetView spreadsheetView = new SpreadsheetView();
//off the standard ContextMenu
spreadsheetView.setContextMenu(null);
//set own handler for right click with Dialog
spreadsheetView.setOnContextMenuRequested(new EventHandler<ContextMenuEvent>() {
@Override public void handle(ContextMenuEvent event) {
CellView cellView = (CellView) event.getTarget();
TextInputDialog dialog = new TextInputDialog(cellView.getText());
Optional<String> result = dialog.showAndWait();
if (result.isPresent()){
System.out.println(cellView.getText());
}
}
});
Я не знаю, очень хорошо эту библиотеку, но она хорошо работает. Пример, как это работает:
Моя программа:
public class MainController extends Application {
public static void main(String[] args) {
launch(args);
}
@Override public void start(Stage primaryStage) throws Exception {
SpreadsheetView spreadsheetView = new SpreadsheetView();
//off the standard ContextMenu
spreadsheetView.setContextMenu(null);
//set own handler for right click with Dialog
spreadsheetView.setOnContextMenuRequested(new EventHandler<ContextMenuEvent>() {
@Override public void handle(ContextMenuEvent event) {
CellView cellView = (CellView) event.getTarget();
TextInputDialog dialog = new TextInputDialog(cellView.getText());
Optional<String> result = dialog.showAndWait();
if (result.isPresent()) {
System.out.println(cellView.getText());
}
}
});
HBox hBox = new HBox();
hBox.getChildren().add(spreadsheetView);
Scene scene = new Scene(hBox);
primaryStage.setScene(scene);
primaryStage.show();
}
}
спасибо за ваши усилия, но почему-то это не работает для меня. Можете ли вы вставить всю свою программу. – DeepInJava
Я добавил свою программу – BadVegan
Теперь он работал для меня. В то время мой проект не строился должным образом. Сожалею! – DeepInJava
Он использует обработчик мыши на табличном, который проверяет при щелчке мышью и нажав на него выстреливает новый диалог в FX а затем принимает ввод и обновляет вид таблицы fx.
table.setOnMousePressed(new EventHandler<MouseEvent>() {
@Override
public void handle(MouseEvent event) {
if (event.getClickCount() == 1) {
Call dialogue method of java fx
}
}
});
Или, если вы хотите, щелкните правой кнопкой мыши вы можете создать клетки
Eg
FirstNameCol.setCellFactory(new Callback<TableColumn<Person, String>, TableCell<Person, String>>() {
@Override
public TableCell<Person, String> call(TableColumn<Person, String> col) {
final TableCell<Person, String> cell = new TableCell<>();
cell.textProperty().bind(cell.itemProperty()); // in general might need to subclass TableCell and override updateItem(...) here
cell.setOnMouseClicked(new EventHandler<MouseEvent>() {
@Override
public void handle(MouseEvent event) {
if (event.getButton == MouseButton.SECONDARY) {
// handle right click on cell...
// access cell data with cell.getItem();
// access row data with (Person)cell.getTableRow().getItem();
}
}
});
return cell ;
}
});
- 1. Щелкните правой кнопкой мыши на JavaFX?
- 2. AutoHotKey Щелкните правой кнопкой мыши
- 3. Щелкните правой кнопкой мыши MainMenu
- 4. Щелкните правой кнопкой мыши в JavaFX for Minesweeper
- 5. Щелкните правой кнопкой мыши по событию мыши
- 6. Щелкните правой кнопкой мыши в DataGrid
- 7. Щелкните правой кнопкой мыши (меню) в PowerBuilder
- 8. щелкните правой кнопкой мыши на IE
- 9. Щелкните правой кнопкой мыши в проводнике Windows
- 10. Щелкните правой кнопкой мыши, чтобы открыть элемент (выберите пункт)
- 11. Listview Large Icon Щелкните правой кнопкой мыши, чтобы открыть ContextMenuStrip
- 12. Щелкните правой кнопкой мыши contextMenu на QPushButton
- 13. Щелкните правой кнопкой мыши на ClojureScript?
- 14. Щелкните правой кнопкой мыши, текстовый захват
- 15. flex TLF щелкните правой кнопкой мыши
- 16. Applescript щелкните правой кнопкой мыши файл
- 17. Eclipse RCP щелкните правой кнопкой мыши событие
- 18. wpf listview щелкните правой кнопкой мыши проблему
- 19. Щелкните правой кнопкой мыши на NSStatusItem
- 20. Maya щелкните правой кнопкой мыши контекстное меню
- 21. Щелкните правой кнопкой мыши на svg
- 22. OpenLayers 3 щелкните правой кнопкой мыши событие
- 23. Щелкните правой кнопкой мыши по OSX новинка
- 24. Щелкните правой кнопкой мыши по WebBuild
- 25. Bukkit - Detect Щелкните правой кнопкой мыши
- 26. VB6 Listbox Щелкните правой кнопкой мыши
- 27. GtkIconView Щелкните правой кнопкой мыши Активировать
- 28. Щелкните правой кнопкой мыши по TDBGRID delphi2007
- 29. WPF Datagrid гиперссылок Щелкните правой кнопкой мыши
- 30. Щелкните правой кнопкой мыши на кнопке/Scala
Здравствуйте, вы хотите, чтобы показать диалог непосредственно после правой кнопкой мыши? – BadVegan
@BadVegan, да, я хочу показать диалог непосредственно после щелчка правой кнопкой мыши. – DeepInJava