我是新來的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