java - 将 jTextPane 文本复制到剪贴板

标签 java swing jtextpane

我有一个包含 jTextPanejButton 的表单,我设置了 jTextPane Accessible Descriptiontext/html,现在我想在单击 jButton 时将 jTextPane 的内容复制到我的剪贴板,我试过这个代码:

 private void jButton2ActionPerformed(java.awt.event.ActionEvent evt) {                                         
        StringSelection stringSelection = new StringSelection (jTextPane1.getText());
        Clipboard clpbrd = Toolkit.getDefaultToolkit ().getSystemClipboard ();
        clpbrd.setContents (stringSelection, null);
    } 

但是当我过去时,它会以 HTML 格式传递文本。

我该如何解决这个问题?

最佳答案

首先,Java 中有 2 个剪贴板(一个本地的和一个系统的,您正在使用)。 Here是一个使用系统剪贴板的示例。看看并试试这个 getClipboardContents 方法:

public String getClipboardContents(Clipboard clipboard) {
    String result = "";
    if (clipbloard != null){            
        //odd: the Object param of getContents is not currently used
        Transferable contents = clipboard.getContents(null);
        boolean hasTransferableText =
          (contents != null) &&
          contents.isDataFlavorSupported(DataFlavor.stringFlavor);
        if ( hasTransferableText ) {
          try {
            result = (String)contents.getTransferData(DataFlavor.stringFlavor);
          }
          catch (UnsupportedFlavorException ex){
            //highly unlikely since we are using a standard DataFlavor
            System.out.println(ex);
            ex.printStackTrace();
          }
          catch (IOException ex) {
            System.out.println(ex);
            ex.printStackTrace();
          }
        }
    }
    return result;
}

关于java - 将 jTextPane 文本复制到剪贴板,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16179595/

相关文章:

java - Swing 布局中的文本框被压扁

java - 如何获取终端结果并设置 JTextArea 来读取终端?

java - 将字符串 append 到 JTextPane

java - super CSV 和分组分隔符

java - java中的比较问题[.equals()]

java - 安卓 Java : is this a good way instead enums?

java - 无法写入 JSON 和 .JsonMappingException : Infinite recursion (StackOverflowError) error

java - 在Java中将具有经纬度坐标的WFS绘制到 Canvas 上

java - 将内联 JComponent 插入 JTextPane 中?

Java swing组件之间的通信