在面板上加入了一个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();
}}
运行结果如下
JavaJtextFeildJTextfield中输入数字鼠标拖拽

解决方案 »

  1.   

    楼主的代码我也测试了一遍,挺正常的。。
    java编译机制有的时候会出现紊乱现象,重建个工程把代码考出道txt再拷贝到新的文件里试试。
      

  2.   

    我想说的是楼主是要实现这种功能吧!
    如果是这样的话,感觉你应该需要加两个事件监听,一个实现MouseAdapter中的keyPressed用于对文本内容的选取,实现将选中的内容作为一个整体,然后就是增加监听MouseMotionListener中的mouseDragged实现拖拽时,弹出对话框提示的功能
      

  3.   


    我擦,还真是编译器的问题,同一个程序,昨天跟今天运行的结果居然不一样,今天运行居然没出现这样的问题,
    是不是java虚拟机不耐久战啊?