0

我将在 JTextArea 上进行剪切和替换方法。我有用于复制和粘贴的代码,我认为我可以使用它,除了删除 JTA 中的标记文本。

剪切和替换方法的代码看起来如何?

复制代码如下所示:

public void copy(){
    int start=ta.getSelectionStart();
    int end=ta.getSelectionEnd();
    String s=ta.getText();
    aString=s.substring(start,end);
    System.out.println(aString);
}

粘贴代码如下所示:

public void paste(){
    int start=ta.getSelectionStart();
    String startText=ta.getText().substring(0, start);
    String endText=ta.getText().substring(start);
    String res=startText+clipBoard+endText;
    ta.setText(res);
}

所以基本上:如何删除 JTextArea 中的标记文本?或者有没有更好的方法来做到这一点?

4

3 回答 3

4

JTextArea 默认使用关键字组合(Ctrl+C 等)支持剪切/复制/粘贴。如果您想要自定义调用(如菜单操作),JTextComponent 本身提供了可以重复使用的剪切/复制/粘贴方法。

于 2009-02-13T05:18:39.920 回答
2

我想它会混合使用这两种方法,没有剪贴板连接。

public void cut(){
  int start=ta.getSelectionStart();
  int end=ta.getSelectionEnd();
  String startText=ta.getText().substring(0, start);
  String endText=ta.getText().substring(end, ta.getText.length());
  ta.setText(startText+endText);
}

但是,为什么不使用JTextComponent 的cutcopypaste方法,它们已经被继承并可用。

于 2009-02-13T04:41:42.040 回答
0

除了 amit.dev 的答案之外,您还应该能够设置自定义键映射以使用您想要的任何键......但如果这样做,您将失去一些平台独立性,因为不同的平台有不同的键用于这些操作.

于 2009-02-14T05:43:06.377 回答