使用JTextArea制作剪切/替换方法

时间:2009-02-13 04:32:27

标签: java swing jtextarea

我要在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中的标记文本?或者有更好的方法可以做到这一点吗?

3 个答案:

答案 0 :(得分:4)

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

答案 1 :(得分:2)

我认为这两种方法都是混合的,没有 clipBoard 连接。

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的 cut copy paste 方法。

答案 2 :(得分:0)

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