Borrar
Hola!
Tengo un JTextPane, en un momento dado selecciono una parte de él, es decir, que hago click en el. si se pulsa un botón, tiene que borrar el caracter que hay inmediatamente después del cursor.
Es decir, como si se pulsara la tecla supr
Puede que sea una tonterÃa, pero no sé cómo hacer eso. ¿Podeis ayudarme?
Tengo un JTextPane, en un momento dado selecciono una parte de él, es decir, que hago click en el. si se pulsa un botón, tiene que borrar el caracter que hay inmediatamente después del cursor.
Es decir, como si se pulsara la tecla supr
Puede que sea una tonterÃa, pero no sé cómo hacer eso. ¿Podeis ayudarme?
Mira aca te dejo este fuente. hace lo que necesitascon (alt +z ) pero a diferencia del suprimir no elimina el texto cuando esta seleccionado sino el caracter que este por delante.
Espero que te sea util
import javax.swing.*;
import java.awt.event.*;
import java.awt.event.KeyListener;
import java.util.EventListener;
import java.awt.event.KeyEvent;
class Test extends JFrame implements KeyListener {
private JTextPane texto;
public Test() {
addWindowListener(new WindowAdapter() {
public void windowClosing(WindowEvent e) {
dispose();
System.exit(0);
}
});
texto= new JTextPane();
texto.addKeyListener(this);
this.getContentPane().add(texto);
}
public static void main(String args[]) {
Test mainFrame = new Test();
mainFrame.setSize(400, 400);
mainFrame.setTitle("Como el suprimir.. pero con alt+z");
mainFrame.setVisible(true);
}
public void keyTyped(KeyEvent e) {}
public void keyPressed(KeyEvent e) {}
public void keyReleased(KeyEvent e) {
if(e.getKeyChar()=='z'&&e.isAltDown()){
int start=texto.getSelectionStart();
int end=texto.getSelectionEnd();
try{
StringBuffer tmp= new StringBuffer(texto.getText(0,texto.getSelectionEnd()));
if(texto.getSelectionEnd()<texto.getText().length()){
tmp.append(texto.getText(texto.getSelectionEnd()+1,texto.getText().length()-texto.getSelectionEnd()-1));
}
texto.setText(tmp.toString());
}catch(javax.swing.text.BadLocationException j){
System.err.println("Indice fuera de rango");
}finally{
texto.setSelectionStart(start);
texto.setSelectionEnd(end);
}
}
}
}
Espero que te sea util
import javax.swing.*;
import java.awt.event.*;
import java.awt.event.KeyListener;
import java.util.EventListener;
import java.awt.event.KeyEvent;
class Test extends JFrame implements KeyListener {
private JTextPane texto;
public Test() {
addWindowListener(new WindowAdapter() {
public void windowClosing(WindowEvent e) {
dispose();
System.exit(0);
}
});
texto= new JTextPane();
texto.addKeyListener(this);
this.getContentPane().add(texto);
}
public static void main(String args[]) {
Test mainFrame = new Test();
mainFrame.setSize(400, 400);
mainFrame.setTitle("Como el suprimir.. pero con alt+z");
mainFrame.setVisible(true);
}
public void keyTyped(KeyEvent e) {}
public void keyPressed(KeyEvent e) {}
public void keyReleased(KeyEvent e) {
if(e.getKeyChar()=='z'&&e.isAltDown()){
int start=texto.getSelectionStart();
int end=texto.getSelectionEnd();
try{
StringBuffer tmp= new StringBuffer(texto.getText(0,texto.getSelectionEnd()));
if(texto.getSelectionEnd()<texto.getText().length()){
tmp.append(texto.getText(texto.getSelectionEnd()+1,texto.getText().length()-texto.getSelectionEnd()-1));
}
texto.setText(tmp.toString());
}catch(javax.swing.text.BadLocationException j){
System.err.println("Indice fuera de rango");
}finally{
texto.setSelectionStart(start);
texto.setSelectionEnd(end);
}
}
}
}
