JTextField文本框只显示数字的一些尝试

1、第一个是传智毕老师视频的做法
 
</pre><pre code_snippet_id="393765" snippet_file_name="blog_20140615_1_7804825" name="code" class="java">import java.awt.FlowLayout;
import java.awt.TextField;
import java.awt.event.KeyAdapter;
import java.awt.event.KeyEvent;

import javax.swing.JFrame;

public class MouseAndKeyDemo {

	private JFrame f;
	private TextField tf;
	
	public MouseAndKeyDemo() {
		
		f = new JFrame("演示鼠标和键盘监听");
		f.setBounds(400,200,500,400);
		f.setLayout(new FlowLayout());
		
		tf = new TextField(35);
		
		f.add(tf);

		//给文本框添加键盘监听。
		tf.addKeyListener(new KeyAdapter() {
			@Override
			public void keyPressed(KeyEvent e) {
				
				int code = e.getKeyCode();
				if(!(code>=KeyEvent.VK_0 && code<=KeyEvent.VK_9)){
					e.consume();
				}
			}
		});
		
		f.setVisible(true);
	}

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


这个可以正常运行,而且能达到只显示数字的功能。


2、这是我模仿第一个写的

import java.awt.FlowLayout;
import java.awt.event.KeyAdapter;
import java.awt.event.KeyEvent;

import javax.swing.JFrame;
import javax.swing.JTextField;

public class Test_JT extends JFrame{
	private JTextField jt = new JTextField(20);
	
	public Test_JT(){
		super("test jt");
		setLayout(new FlowLayout());
		jt.setSize(30, 10);
		add(jt);
		
		jt.addKeyListener(new KeyAdapter() {
			public void keyPressed(KeyEvent e){
				int code = e.getKeyCode();
				if(!(code >= KeyEvent.VK_0 && code <= KeyEvent.VK_9)){
					e.consume();
				}
			}
		});
		
		setSize(400, 300);
		setVisible(true);	
	}
	
	public static void main(String[] args){
		new Test_JT();
	}
}


这个不能完成只显示数字的功能


3、这个是百度知道网友的答案

import java.awt.FlowLayout;
import java.awt.event.KeyAdapter;
import java.awt.event.KeyEvent;
 
import javax.swing.JFrame;
import javax.swing.JTextField;
 
public class Test_JT extends JFrame
{
    private JTextField jt = new JTextField(20);
 
    public Test_JT()
    {
        super("test jt");
        setLayout(new FlowLayout());
        jt.setSize(30, 10);
        add(jt);
 
        jt.addKeyListener(new KeyAdapter()
        {
            public void keyTyped(KeyEvent e)
            {
                System.out.println(e);
                char code = e.getKeyChar();
                if (!(code >= KeyEvent.VK_0 && code <= KeyEvent.VK_9))
                {
                    e.consume();
                }
            }
        });
 
        setSize(400, 300);
        setVisible(true);
    }
 
    public static void main(String[] args)
    {
        new Test_JT();
    }
}

这个对我的修改,也能实现功能。


对比一下,为什么我模仿传智的的不能实现那个功能呢?只因为那个继承关系吗?

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值