求教TextField与JTextField的区别?

windergao 2013-06-30 09:28:18
import java.awt.*;
import javax.swing.*;
import java.awt.event.*;


class test
{
private Frame f;
private TextField tf;

test()
{
init();
}

public void init()
{
f = new Frame("my frame");

f.setBounds(300,100,600,500);
f.setLayout(new FlowLayout());

tf = new TextField(20);

f.add(tf);

myEvent();

f.setVisible(true);

}
private void myEvent()
{
tf.addKeyListener(new KeyAdapter()
{
public void keyPressed(KeyEvent e)
{
int code = e.getKeyCode();
if(!(code>=KeyEvent.VK_0 && code<=KeyEvent.VK_9))
{
System.out.println(code+".....是非法的");
e.consume();
}


}
});
}

public static void main(String[] args)
{
new test();
}
}
//这是个只能输入数字不能输入字母的代码,但是上面的TextFiel改成JTextField后,字母就能输入了,也就是说监听无效了,为什么?
...全文
273 9 打赏 收藏 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
huntor 2013-07-02
  • 打赏
  • 举报
回复
引用 6 楼 windergao 的回复:
不管其他组件怎么改,用TextField就正常,用JTextField就功能失效。目前还是没有解决啊。
JTextField应该使用一个定制的Document
windergao 2013-07-02
  • 打赏
  • 举报
回复
不管其他组件怎么改,用TextField就正常,用JTextField就功能失效。目前还是没有解决啊。
花木兰1闪21A 2013-07-02
  • 打赏
  • 举报
回复
一个是awt中的 一个是swing中的,相应怎么用到api中查
windergao 2013-07-02
  • 打赏
  • 举报
回复
引用 8 楼 tlfu_12344 的回复:
一个是awt中的 一个是swing中的,相应怎么用到api中查
就是查不到 才问的啊。javax.swing.event下面没有对应的KeyEvent
宇宙浪子 2013-07-01
  • 打赏
  • 举报
回复
如果你用JTextField那么使用Jframe应该就没有问题了,你可以查看下java的api看下二者的区别,使用J**比较好的,你可以试试
windergao 2013-07-01
  • 打赏
  • 举报
回复
用Jframe和Frame是一样
windergao 2013-06-30
  • 打赏
  • 举报
回复
我估计是e.consume();有问题, e是java.awt.event.KeyEvent中的,但是javax.swing.event下面没有对应的KeyEvent,但是也找不到可以提替代的。
windergao 2013-06-30
  • 打赏
  • 举报
回复
用keyTyped练数字都不能输入了
huntor 2013-06-30
  • 打赏
  • 举报
回复
使用keyTyped这个方法。 或者把keyReleased也重写了

62,620

社区成员

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

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