我是新来的SpreadSheet功能ControlsFx Api。我想打开Dialog
在Javafx的SpreadsheetView
的Spreadsheetcell
的右键点击。任何帮助是极大的赞赏。JavaFx电子表格单元格右键单击打开对话框
回答
这是代码,你可以关闭标准的文本菜单和工具自己的处理程序与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
}
}
});
或者如果你想请右键单击您可以创建细胞
如
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. 双击DataGridView单元格打开表单
- 2. 如何在电子表格中打开XML电子表格“uncollapse”单元格?
- 3. 允许单击鼠标左键单击鼠标右键或按Ctrl键单击打开对话框
- 4. 打开模式对话框从内部表格单元
- 5. 单击单元格时弹出延迟打开弹出式对话框
- 6. 在JavaFX中右键单击?
- 7. GWT电子表格单元格
- 8. jQuery对话框不能单击打开
- 9. 打开表格视图单元格的URL点击
- 10. 表格单元右对齐行内
- 11. JavaFx DatePicker单色单元格
- 12. C#打开Xml SDK 2.0电子表格设置单元日期时间格式
- 13. 在UserForm打开时单击单元格时填充TextBox与单元格引用
- 14. 右键单击网格视图
- 15. 将jQueryUI的对话框表格单元格
- 16. 如何计算电子表格中单元格的配对
- 17. 表中的JavaFX旧单元格以新单元格显示
- 18. 谷歌电子表格无法打开xml电子表格
- 19. 表格单元格对齐
- 20. Android - 单击按钮后右键单击显示进度对话框
- 21. 电子 - 打开文件夹对话框
- 22. 从右到左打印表格单元格
- 23. 打开XML Excel单元格格式
- 24. 单击列表视图时打开自定义对话框
- 25. 在.NET应用程序中创建右键单击对话框
- 26. VBA通单元格的值打印对话框
- 27. 格式化Excel电子表格单元格内的文本
- 28. 右键单击
- 29. JavaFX 8:为表格行使用边框时移动表格单元格
- 30. 打印GWT单元格表
你好,你要直接显示对话框后点击右键? – BadVegan
@BadVegan,是的,我想单击鼠标右键后直接显示对话框。 – DeepInJava