我有一个:
在上下文菜单和工具栏之间共享功能的好方法是什么? 静态类,Singleton还是有更好的东西?
我不想两次创建相同的功能。
答案 0 :(得分:1)
只要您的程序已经构建为处理此类共享功能,这应该是相当简单的。一个好的模式,特别是如果你之前没有(作为学习练习)是Model-View-Controller (MVC)。您应该能够(通过互联网搜索)找到在JavaFX上实现MVC的教程。
在这种情况下,您将查看Controller的两个不同部分,并将它们指向模型中的相同元素(新文件功能)。
答案 1 :(得分:0)
我认为这可行得很好:
public void start(Stage stage) throws Exception {
// Other code...
MenuItem newFile = new MenuItem("New file...");
Button button = new Button("New File...");
contextMenu.getItems().add(newFile);
toolbar.getItems().add(button);
button.setOnAction(new Handler());
newFile.setOnAction(new Handler());
borderPane.setTop(toolbar);
borderPane.setCenter(treeView);
treeView.setContextMenu(menu);
// Other code...
}
这里是处理程序:
public class Handler implements EventHandler<ActionEvent> {
@Override
public void handle(ActionEvent event) {
// Handle the creation of the file
}
}