当我在用户ID框中按下某个键时,我希望当按下第一个键时,教科书中的文本将被删除。无法获取JTextField在keyPressed上将文本设置为null?
我认为下面的代码会做到这一点,但它并没有擦除文本字段中的文本。
如何将文本设置为在我的JTextField中为空?
代码:
@Override
public void keyPressed(KeyEvent e) {
final Component source = e.getComponent();
final JFrame frame = (JFrame) SwingUtilities.getRoot(source);
if (source instanceof JTextField){
((JTextField) source).setText("");
source.repaint();
}
}
我要指出,我KeyListener的是一个完全不同的类。
class myKeyListener implements KeyListener {
@Override
public void keyTyped(KeyEvent e) {
// TODO Auto-generated method stub
}
@Override
public void keyPressed(KeyEvent e) {
final Component source = e.getComponent();
final JFrame frame = (JFrame) SwingUtilities.getRoot(source);
JTextField tf = (JTextField)e.getSource();
tf.setText("");
}
@Override
public void keyReleased(KeyEvent e) {
// TODO Auto-generated method stub
}
}
你是怎么实际使用这段代码的?我们能看到更多的节目吗? –
因此,当用户首先在userID字段中键入内容时,您想要删除userID文本?下一个问题是,为什么? – MadProgrammer
一旦你得到这个工作,你将不得不添加一些逻辑来确定什么时候你想实际清除'JTextField'。否则,每次按下按键时都会清除它,这意味着用户将永远无法输入任何内容。 –