我想使用Java Swing删除文本区域中的选定文本,但我找不到这样做的方法。在某些时候我想过使用textArea.setText("");
但是,当我这样做时,它会清除所有内容。有人可以帮帮我吗?
这是我到目前为止编写的代码,
public class DeleteTest extends JFrame implements ActionListener {
JPanel panel;
JTextArea textArea;
JButton button;
public DeleteTest() {
setVisible(true);
setSize(500, 500);
setDefaultCloseOperation(EXIT_ON_CLOSE);
panel = new JPanel();
panel.setBackground(getBackground().BLACK);
textArea = new JTextArea(300, 300);
button = new JButton("clear");
button.addActionListener(this);
panel.add(button);
add(textArea, BorderLayout.CENTER);
add(panel, BorderLayout.SOUTH);
}
@Override
public void actionPerformed(ActionEvent arg0) {
if (arg0.getSource()==button){
String selected=textArea.getSelectedText();
if(selected!=""){
}
}
}
public static void main(String[] args) {
Runnable r = new Runnable() {
@Override
public void run() {
DeleteTest de = new DeleteTest();
}
};
SwingUtilities.invokeLater(r);
}
}
答案 0 :(得分:36)
txtArea.replaceSelection("");
这应该更短,更有效。
答案 1 :(得分:1)
对于 JavaFx TextArea ,您可以使用 deleteText(IndexRange range)方法删除所选文本。
textArea.deleteText(textArea.getSelection());
要基于索引删除文本,请使用 deleteText(int start,int end)重载方法
textArea.deleteText(startIndex, endIndex);
我们可以使用 replaceSelection(字符串替换)方法删除文本,实际上 deleteText 内部使用 replaceText 方法,但 deleteText 方法将提高代码的可读性。
答案 2 :(得分:0)
如果您只想删除所选文字,请尝试以下操作:
textArea.setText(textArea.getText().replace(textarea.getSelectedText(),""));
希望这有帮助。