Создание методов вырезания / замены с помощью JTextArea - PullRequest
0 голосов
/ 13 февраля 2009

Я должен сделать метод вырезания и замены в 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 ]

4 голосов
/ 13 февраля 2009

JTextArea по умолчанию поддерживает вырезание / копирование / вставку с использованием комбинации ключевых слов (Ctrl + C и т. Д.). Если вы хотите иметь пользовательские вызовы (например, действие меню), JTextComponent сам предоставляет методы вырезания / копирования / вставки, которые можно использовать повторно.

2 голосов
/ 13 февраля 2009

Это будет смесь обоих методов, без 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);
}

Однако почему бы не использовать cut , copy и paste метод JTextComponent, который уже унаследован и доступен.

0 голосов
/ 14 февраля 2009

В дополнение к ответу amit.dev у вас также должна быть возможность настраивать сопоставления клавиш для использования любых клавиш, которые вы хотите ... но если вы это сделаете, вы потеряете некоторую независимость от платформы, поскольку разные платформы имеют разные ключи для этих операций.

...