Reputation: 191199
I have Java Swing code that process user's input as follows:
public class UserEntryPane extends JPanel implements DocumentListener {
…
@Override
public void insertUpdate(DocumentEvent e) {
try {
String c = a.getText(...);
if (c.equals("\n")) {
System.out.println(...);
...
}
else {
...
}
} catch (Exception e) {
e.printStackTrace();
}
}
The issue is that this method is not invoked when Backspace is pressed. How can I detect user's Backspace to process it correctly?
Upvotes: 0
Views: 1366
Reputation: 6617
import java.awt.FlowLayout;
import java.awt.Robot;
import java.awt.event.KeyEvent;
import javax.swing.JFrame;
import javax.swing.JTextField;
public class UseBackSPace extends JFrame
{
Robot r;
void start()
{
try
{
JFrame f = new JFrame("UseBackSPace");
JTextField txt = new JTextField(20);
f.add(txt);
f.setSize(500, 200);
f.setVisible(true);
f.setLayout(new FlowLayout());
f.setDefaultCloseOperation(EXIT_ON_CLOSE);
// f.setLocation(400, 400);
r = new Robot();
r.setAutoDelay(900);
r.keyPress(KeyEvent.VK_T);
r.keyPress(KeyEvent.VK_H);
r.keyPress(KeyEvent.VK_I);
r.keyPress(KeyEvent.VK_S);
r.keyPress(KeyEvent.VK_SPACE);
r.keyPress(KeyEvent.VK_I);
r.keyPress(KeyEvent.VK_S);
r.keyPress(KeyEvent.VK_SPACE);
r.keyPress(KeyEvent.VK_F);
r.keyPress(KeyEvent.VK_U);
r.keyPress(KeyEvent.VK_N);
r.keyPress(KeyEvent.VK_BACK_SPACE);
} catch (Exception e)
{
}
}
public static void main(String args[])
{
new UseBackSPace().start();
}
}
Upvotes: 0
Reputation: 10994
Seems you use DocumentListener
.
Look at method removeUpdate
. It called, when you use backspace.
@Override
public void removeUpdate(DocumentEvent arg0) {
}
Upvotes: 2