在文本框中输入的方式默认为插入形式,如何通过按键盘上的:Insert键,来切换插入和改写模式,谢谢各位
解决方案 »
- 我不能用netbeans啊,急急急急!!!!!!!!!!!!1
- oracle sql 新人 何谓依赖
- NoClassDefFoundError错误,我在JSP中调用这个方法可以执行,但是用java命令来执行就出现了这个错误,不知奥什么原因
- 怎样实现粘贴复制功能(急)?
- 关于布局问题……
- Jtable的问题
- 本人菜鸟 一段很简短的代码 但是我看着奇怪!!!
- 关于javamail的folder.create()...
- 各位,能否告诉小弟那里有《thinking in java》可以下载啊!thx
- 新人,刚接触java不久
- 高分请教:hibernate 采用nativesql进行查询的问题
- java播放视频
* @param args
*/
public static void main(String[] args) {
JFrame jf = new JFrame();
jf.setContentPane(new InsertTextField());
jf.pack();
jf.setVisible(true);
}
public InsertTextField() {
this.setLayout(new FlowLayout());
final JTextField jtf = new JTextField(10);
final IntegerDocument id = new IntegerDocument(10);
jtf.addKeyListener(new KeyListener() {
@Override
public void keyPressed(KeyEvent e) {
if (e.getKeyCode() == KeyEvent.VK_INSERT) {
id.setFlag();
}
}
@Override
public void keyReleased(KeyEvent e) {
// jtf.setCaretPosition(jtf.getText().length());
} @Override
public void keyTyped(KeyEvent e) { } });
jtf.setDocument(id);
this.add(jtf);
} class IntegerDocument extends PlainDocument { private boolean flag = false; public IntegerDocument(int n) {
super();
} public void setFlag() {
boolean f = flag ? flag = false : (flag = true);
} public void insertString(int offset, String s, AttributeSet ats)
throws BadLocationException { try {
super.insertString(offset, s, ats);
if (flag) {
remove(offset - 1, 1);
}
} catch (Exception ex) {
Toolkit.getDefaultToolkit().beep();
}
}
}
}可以结贴了
基本上可以了,就是还有一点点小问题,替换应该是替换掉光标所在的后面一个,然后再输入的时候,应该继续把后面的替换了,你的是一直替换同一个位置的,而且是替换光标前面那个字符了,请再帮我看看,这个东西吧,谢谢