我想为此文本创建上下文菜单:
Text chartSubtitle = new Text("Some text");
我一般用鼠标右键单击我想用菜单项“选择文本”创建菜单,该菜单项将文本发送到Windows剪贴板中,这样我就可以在其他应用程序中使用该文本。
知道我该怎么做吗?
答案 0 :(得分:1)
您可以参考本教程获取有关如何设置和编写上下文菜单的基本代码(它有点涉及):
http://docs.oracle.com/javafx/2/ui_controls/menu_controls.htm
但是,至于另一部分:将文本添加到剪贴板的实际操作,这样的事情可以起作用:
final Clipboard clipboard = Clipboard.getSystemClipboard();
final ClipboardContent content = new ClipboardContent();
content.putString("Some text");
clipboard.setContent(content);
更新:
要创建一个上下文菜单(从上面引用的链接 - 参见页面底部附近的示例22-9),您可以将其调整为以下内容:
//Example 22-9 Defining a Context Menu
final ContextMenu cm = new ContextMenu();
MenuItem cmItem1 = new MenuItem("Some Text");
cmItem1.setOnAction(new EventHandler<ActionEvent>() {
public void handle(ActionEvent e) {
Clipboard clipboard = Clipboard.getSystemClipboard();
ClipboardContent content = new ClipboardContent();
content.putString("Text from some location");
clipboard.setContent(content);
}
});
cm.getItems().add(cmItem1);
pic.addEventHandler(MouseEvent.MOUSE_CLICKED,
new EventHandler<MouseEvent>() {
@Override public void handle(MouseEvent e) {
if (e.getButton() == MouseButton.SECONDARY)
//handle the right-click (i.e. a context menu)
//user implemented - so this is entirely up to you
}
});
参考:
http://www.java2s.com/Code/Java/JavaFX/PutstringvaluetoSystemClipboard.htm