CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
山寨机中的战斗机! 程序优化工程师到底对IT界有没有贡献
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  Java >  J2SE / 基础类

如何限制JTextField的输入位数?谢谢

楼主jin2001()2001-12-20 16:23:42 在 Java / J2SE / 基础类 提问

 
  另外帮忙看一看http://www.csdn.net/expert/Topic/431/431261.shtm 问题点数:20、回复次数:6Top

1 楼dreammaster(天涯)回复于 2001-12-20 16:39:41 得分 0

JTextField   =   new   JTextField(xx);  
   
  xx为可以输入的位数Top

2 楼jin2001()回复于 2001-12-20 16:51:34 得分 0

To   dreammaster(天涯) 不对吧,生成的文本框还是可以输入多位。见以下程序  
  import   java.awt.*;  
  import   java.awt.event.*;  
  import   javax.swing.*;  
  import   javax.swing.event.*;  
   
  class   TextTestFrame   extends   JFrame  
        implements   DocumentListener  
  {     public   TextTestFrame()  
        {     setTitle("TextTest");  
              setSize(300,   200);  
              addWindowListener(new   WindowAdapter()  
              {     public   void   windowClosing(WindowEvent   e)  
                    {     System.exit(0);  
                    }  
              }   );  
   
              Container   contentPane   =   getContentPane();  
   
              JPanel   p   =   new   JPanel();  
              hourField   =   new   JTextField(3);  
              //hourField.setColumns(3);  
              //validate();  
              p.add(hourField);  
              hourField.getDocument().addDocumentListener(this);  
               
              minuteField   =   new   JTextField("00",   3);  
              p.add(minuteField);  
              minuteField.getDocument().addDocumentListener(this);  
       
              contentPane.add(p,   "South");  
              clock   =   new   ClockPanel();  
              contentPane.add(clock,   "Center");  
        }  
         
        public   void   insertUpdate(DocumentEvent   e)  
        {     setClock();  
        }  
        public   void   removeUpdate(DocumentEvent   e)  
        {     setClock();  
        }  
        public   void   changedUpdate(DocumentEvent   e)  
        {      
        }  
         
        public   void   setClock()  
        {     int   hours    
                    =   Integer.parseInt(hourField.getText().trim());  
              int   minutes    
                    =   Integer.parseInt(minuteField.getText().trim());  
              clock.setTime(hours,   minutes);  
        }  
               
        private   JTextField   hourField;  
        private   JTextField   minuteField;  
        private   ClockPanel   clock;  
  }  
   
  class   ClockPanel   extends   JPanel  
  {     public   void   paintComponent(Graphics   g)  
        {     super.paintComponent(g);    
              g.drawOval(0,   0,   100,   100);  
              double   hourAngle    
                    =   2   *   Math.PI   *   (minutes   -   3   *   60)   /   (12   *   60);  
              double   minuteAngle    
                    =   2   *   Math.PI   *   (minutes   -   15)   /   60;  
              g.drawLine(50,   50,    
                    50   +   (int)(30   *   Math.cos(hourAngle)),    
                    50   +   (int)(30   *   Math.sin(hourAngle)));  
              g.drawLine(50,   50,    
                    50   +   (int)(45   *   Math.cos(minuteAngle)),    
                    50   +   (int)(45   *   Math.sin(minuteAngle)));  
        }  
         
        public   void   setTime(int   h,   int   m)  
        {     minutes   =   h   *   60   +   m;  
              repaint();  
        }  
         
        private   int   minutes   =   0;  
  }  
   
   
  public   class   TextTest  
  {     public   static   void   main(String[]   args)  
        {     JFrame   frame   =   new   TextTestFrame();  
              frame.show();  
        }  
  }  
   
  Top

3 楼hexiaofeng(java爱好者)回复于 2001-12-20 16:51:37 得分 0

看JTextField.getText().length的长度Top

4 楼CanFly(目标明确并做所必须做的一切)回复于 2001-12-20 17:02:53 得分 0

同意楼上的意见!  
  document在有些方面很方便!  
  如果单存判断输入长度可以直接在输入事件中判断JTextField.getText().lengthTop

5 楼jin2001()回复于 2001-12-20 20:20:34 得分 0

请教   CanFly(我会飞):如何在以上程序中具体实现,多谢多谢 Top

6 楼CanFly(目标明确并做所必须做的一切)回复于 2001-12-22 19:13:33 得分 20

这个虽然不是判断getText().length的程序!  
  但是所用的事件差不多了!  
  你可以改改!  
  import   javax.swing.*;  
  import   java.awt.*;  
  import   java.awt.event.*;  
  import   javax.swing.event.*;  
  public   class   keytest   extends   JFrame   implements   KeyListener  
  {  
  private   JTextField   jt=new   JTextField();  
  public   keytest()  
  {  
  Container   ctp=getContentPane();  
  ctp.setLayout(null);  
  ctp.add(jt);  
  jt.setBounds(20,20,100,30);  
  setTitle("keytest");  
  setSize(300,300);  
  jt.addKeyListener(this);  
  addWindowListener(new   WindowAdapter()  
  {  
  public   void   windowClosing(WindowEvent   e)  
  {  
  System.exit(0);  
  }  
  });  
  }  
  public   void   keyPressed(KeyEvent   evt)  
  {  
  int   keyCode   =evt.getKeyCode();  
  //jt.setText("");  
  if   (keyCode==KeyEvent.VK_RIGHT   &&   evt.isShiftDown())  
          {jt.setText("Shit+->");}  
  if   (keyCode==KeyEvent.VK_ENTER)     jt.setText("");    
        //else   {jt.setText("");   }  
  }  
  public   void   keyTyped(KeyEvent   evt){}  
  public   void   keyReleased(KeyEvent   evt)  
  {  
  int   keyCode   =evt.getKeyCode();  
  jt.setText("");  
  if   (keyCode==KeyEvent.VK_RIGHT   &&   evt.isShiftDown())  
          jt.setText("Shit+->");  
        //else    
         
  }  
  public   static   void   main   (String   args[])  
  {  
  JFrame   test   =new   keytest();  
  test.setVisible(true);  
  }  
  }Top

相关问题

  • 怎么限制DBEDIT里面输入的数字的位数。
  • 在edit控件输入数字时,怎样能够限制输入的位数?
  • 请问,编辑框中如何限制用户输入的位数啊?
  • 限制文本中输入数字小数点后的位数?????在线等!!!!!!!!!!!
  • jTextField如何限制输入字符长度?
  • 请问如何做到限制textbox中数字的小数位数,比如输入3位小数后,就不能输入小数了?谢谢
  • 如何限制JTEXTFIELD的输入内容,及DIALOG字体的问题
  • 怎么限制jTextField文本中只能输入的是数字~~而输入字符都无效没反应????
  • 再次送分!如何限制edit输入数字并且一定要5位数字?解决后,立即结帖!
  • ComboBox中的限制输入

关键词

  • ctp
  • swing
  • jtextfield
  • jt
  • hourfield
  • documentev
  • keytest
  • 输入
  • minutefield
  • contentpane

得分解答快速导航

  • 帖主:jin2001
  • CanFly

相关链接

  • CSDN Java频道
  • Java类图书
  • Java类源码下载

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
北京创新乐知广告有限公司 版权所有, 京 ICP 证 070598 号
世纪乐知(北京)网络技术有限公司 提供技术支持
Copyright © 2000-2008, CSDN.NET, All Rights Reserved
GongshangLogo