public class TextDemo { public static void main(String[] args) { jFrameShow(); }
private static void jFrameShow() {
JFrame jframe = new JFrame();
jframe.setLayout(null);
jframe.setBounds(30,30,805, 625);
jframe.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
swingText = new JTextField();
swingText.setBounds(50,50,100,20);
swingText.addKeyListener(new KeyAdapter() { public void keyPressed(KeyEvent e) {
swingText.setText("");
//swingText.setText(String.valueOf(e.getKeyChar()));
}
});
jframe.add(swingText);
jframe.setVisible(true);
}
}如上代码,本来意图是想按下任意健都通过keyPressed事件加以重新解析,重设swingText的内容,
可是,swingText.setText(String.valueOf(e.getKeyChar()));这行如果执行的话,最后的结果是
swingText出现两个相同的值,如aa,bb等
而选择swingText.setText("");有效时,最终又不能如预期的清空swingText的内容。请问有何解决办法吗,keyReleased事件就不用考虑了,因为是按键释放才触动的,用户体验不是很好
private static void jFrameShow() {
JFrame jframe = new JFrame();
jframe.setLayout(null);
jframe.setBounds(30,30,805, 625);
jframe.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
swingText = new JTextField();
swingText.setBounds(50,50,100,20);
swingText.addKeyListener(new KeyAdapter() { public void keyPressed(KeyEvent e) {
swingText.setText("");
//swingText.setText(String.valueOf(e.getKeyChar()));
}
});
jframe.add(swingText);
jframe.setVisible(true);
}
}如上代码,本来意图是想按下任意健都通过keyPressed事件加以重新解析,重设swingText的内容,
可是,swingText.setText(String.valueOf(e.getKeyChar()));这行如果执行的话,最后的结果是
swingText出现两个相同的值,如aa,bb等
而选择swingText.setText("");有效时,最终又不能如预期的清空swingText的内容。请问有何解决办法吗,keyReleased事件就不用考虑了,因为是按键释放才触动的,用户体验不是很好
swingText出现两个相同的值,如aa,bb等
因为swingText自带其他监听public class TextDemo {
private static JTextField swingText; public static void main(String[] args) { jFrameShow(); } private static void jFrameShow() { JFrame jframe = new JFrame();
jframe.setLayout(null);
jframe.setBounds(30, 30, 805, 625);
jframe.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
swingText = new JTextField();
swingText.setBounds(50, 50, 100, 20);
swingText.addKeyListener(new KeyAdapter() { public void keyPressed(KeyEvent e) { swingText.setText("");
// swingText.setText(String.valueOf(e.getKeyChar()));
}
});
jframe.add(swingText);
jframe.setVisible(true);
}
}
你要什么效果?
所以必须解析所按的键,但不能让按下的键的值显示在swingText中
swingText.addKeyListener(new KeyAdapter() { public void keyTyped(KeyEvent e) {
e.consume();//让按下的键不显示
} public void keyPressed(KeyEvent e) { swingText.setText("bb");//你自己解析
}
});
这样应该可以,你试试。
尤其是ctrl+v会带来很大的麻烦,至于这方面有什么好方法吗