文本的上下文菜单

时间:2014-05-21 08:22:56

标签: javafx javafx-2 javafx-8

我想为此文本创建上下文菜单:

Text chartSubtitle = new Text("Some text");

我一般用鼠标右键单击我想用菜单项“选择文本”创建菜单,该菜单项将文本发送到Windows剪贴板中,这样我就可以在其他应用程序中使用该文本。

知道我该怎么做吗?

1 个答案:

答案 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