JTextField中鼠标拖动选择字符时会触发KeyListener事件?代码如下,求解决

TraitsWu 2013-06-18 06:36:43
在面板上加入了一个JTextField,里面只可输入数字,如下,可是怎么用鼠标选择JTextField中的文本时,会触发KeyListener事件呢?
public class JTextFieldtest5 extends JFrame {

public JTextFieldtest5() {
final JTextField field = new JTextField(10);
field.addKeyListener(new KeyAdapter() {
public void keyTyped(KeyEvent e)
{
String str = "0123456789";// 在这里不对小数点进行屏蔽,在点击提交按钮时,若不能转化成数字则给提示
char ch =e.getKeyChar();
if (str.indexOf(ch) == -1)
{
e.consume();
JOptionPane.showMessageDialog(JTextFieldtest5.this, "数据不合法");
}

}
});



this.add(field);
this.add(new JLabel("用鼠标拖拽选择"));
this.setLayout(new FlowLayout());
this.setBounds(100, 200, 300, 100);
this.setVisible(true);
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}

public static void main(String[] args)
{
new JTextFieldtest5();
}

}

运行结果如下
...全文
211 5 打赏 收藏 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
TraitsWu 2013-06-19
  • 打赏
  • 举报
回复
引用 2 楼 QQ1130141391 的回复:
刚才测试一看,不存在你说的问题!!
引用 3 楼 AA5279AA 的回复:
楼主的代码我也测试了一遍,挺正常的。。 java编译机制有的时候会出现紊乱现象,重建个工程把代码考出道txt再拷贝到新的文件里试试。
我擦,还真是编译器的问题,同一个程序,昨天跟今天运行的结果居然不一样,今天运行居然没出现这样的问题, 是不是java虚拟机不耐久战啊?
zhangxm2015 2013-06-19
  • 打赏
  • 举报
回复
我想说的是楼主是要实现这种功能吧! 如果是这样的话,感觉你应该需要加两个事件监听,一个实现MouseAdapter中的keyPressed用于对文本内容的选取,实现将选中的内容作为一个整体,然后就是增加监听MouseMotionListener中的mouseDragged实现拖拽时,弹出对话框提示的功能
失落夏天 2013-06-18
  • 打赏
  • 举报
回复
楼主的代码我也测试了一遍,挺正常的。。 java编译机制有的时候会出现紊乱现象,重建个工程把代码考出道txt再拷贝到新的文件里试试。
灵动笔记 2013-06-18
  • 打赏
  • 举报
回复
刚才测试一看,不存在你说的问题!!
wang7535067 2013-06-18
  • 打赏
  • 举报
回复
封装一个方法,然后到鼠标监听事件里面调用就行了。

62,620

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧