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

the super developer for Swing/AWT/JFC , come in please

楼主chinesealbert(chinesealbert)2002-04-18 15:16:08 在 Java / J2SE / 基础类 提问

I   have   a   very   simple   program   to   test   use   method   requestFocus()  
  my   program   is   below:  
  ////////////////////////////////////////////////////  
  import   java.awt.*;  
  import   java.awt.event.*;  
  import   javax.swing.*;  
  import   javax.swing.event.*;  
   
  class   TextTestFrame   extends   JFrame     implements     FocusListener  
  {     public   TextTestFrame()  
        {     setTitle("TextTest");  
              setSize(300,   200);  
              addWindowListener(new   WindowAdapter()  
              {     public   void   windowClosing(WindowEvent   e)  
                    {     System.exit(0);  
                    }  
              });    
   
      //addFocusEvent(this);  
  addFocusListener(this);    
       
   
              Container   contentPane   =   getContentPane();  
   
              JPanel   p   =   new   JPanel();  
              hourField   =   new   JTextField("12",   3);  
              p.add(hourField);  
   
              minuteField   =   new   JTextField("00",   3);  
              //minuteField.requestFocus();  
              p.add(minuteField);  
   
              contentPane.add(p,   "South");  
        }  
   
        public   void   focusLost(FocusEvent   evt)  
        {  
   
        }  
        public   void   focusGained(FocusEvent   evt)  
        {  
                minuteField.requestFocus();  
        }  
        private   JTextField   hourField;  
        private   JTextField   minuteField;  
   
  }  
   
  public   class   TextTest  
  {     public   static   void   main(String[]   args)  
        {     JFrame   frame   =   new   TextTestFrame();  
              frame.show();  
        }  
  }  
   
  //////////////////////////////  
  I   only   want   when   I   run   this   program   ,   the   focus   at   minuteField   .   but   it   always   focus   at   hourField   .  
  What’s   wrong   with   me   ?   how   to   do   it   ?  
  Please   answer   my   question   detailly!  
  Thanx!  
  问题点数:100、回复次数:6Top

1 楼drinkant(喝酒的蚂蚁)回复于 2002-04-18 15:26:39 得分 0

不敢确定的说:  
  你写的程序是要当有focus事件发生在你的frame上的时候,才强制把焦点给minuteButton,麻烦你在你的frame是点击一下鼠标试试,   看看焦点有没有转移过去,   呵呵呵,   自己写程序不知道自己的逻辑,   你是比较强  
  求助还全英文的,faint,   崇洋媚外Top

2 楼chinesealbert(chinesealbert)回复于 2002-04-18 15:51:05 得分 0

drinkant:  
  may   be   U   R   right   ,   this   is   my   last   staw   to   do   this   thing   ,   unfortunately   ,   when   i   have   clicked     at   frame   before   i   ask   question   at   this   ,   the   focus   is   not   changes   too.so   i   came   here   want   someone   to   help   me   !  
  now   ,i   will   put   my   a   series   of   program   for   this   question:  
  /////////////////////////////  
  import   java.awt.*;  
  import   java.awt.event.*;  
  import   javax.swing.*;  
  import   javax.swing.event.*;  
   
  class   TextTestFrame   extends   JFrame     //implements     FocusListener  
  {     public   TextTestFrame()  
        {     setTitle("TextTest");  
              setSize(300,   200);  
              addWindowListener(new   WindowAdapter()  
              {     public   void   windowClosing(WindowEvent   e)  
                    {     System.exit(0);  
                    }  
              });    
   
      //addFocusListener(this);    
       
      Container   contentPane   =   getContentPane();  
   
              JPanel   p   =   new   JPanel();  
              hourField   =   new   JTextField("12",   3);  
              p.add(hourField);  
   
              minuteField   =   new   JTextField("00",   3);  
               
              p.add(minuteField);  
      minuteField.setVisible(true);  
      minuteField.transferFocus();  
   
              contentPane.add(p,   "South");  
        }  
   
        /*public   void   focusLost(FocusEvent   evt)  
        {  
        }  
        public   void   focusGained(FocusEvent   evt)  
        {  
                minuteField.requestFocus();  
        }*/  
        private   JTextField   hourField;  
        private   JTextField   minuteField;  
   
  }  
   
  public   class   TextTest  
  {     public   static   void   main(String[]   args)  
        {     JFrame   frame   =   new   TextTestFrame();  
              frame.show();  
        }  
  }  
   
  //////////////////  
  import   java.awt.*;  
  import   java.awt.event.*;  
  import   javax.swing.*;  
  import   javax.swing.event.*;  
   
  class   TextTestFrame   extends   JFrame     //implements     FocusListener  
  {     public   TextTestFrame()  
        {     setTitle("TextTest");  
              setSize(300,   200);  
              addWindowListener(new   WindowAdapter()  
              {     public   void   windowClosing(WindowEvent   e)  
                    {     System.exit(0);  
                    }  
              });    
   
      //addFocusListener(this);    
       
      Container   contentPane   =   getContentPane();  
   
              JPanel   p   =   new   JPanel();  
              hourField   =   new   JTextField("12",   3);  
              p.add(hourField);  
   
              minuteField   =   new   JTextField("00",   3);  
               
              p.add(minuteField);  
      minuteField.setVisible(true);  
      minuteField.requestFocus()  
      //minuteField.transferFocus();  
   
              contentPane.add(p,   "South");  
        }  
   
        /*public   void   focusLost(FocusEvent   evt)  
        {  
        }  
        public   void   focusGained(FocusEvent   evt)  
        {  
                minuteField.requestFocus();  
        }*/  
        private   JTextField   hourField;  
        private   JTextField   minuteField;  
   
  }  
   
  public   class   TextTest  
  {     public   static   void   main(String[]   args)  
        {     JFrame   frame   =   new   TextTestFrame();  
              frame.show();  
        }  
  }  
   
  ///////////////////////  
  import   java.awt.*;  
  import   java.awt.event.*;  
  import   javax.swing.*;  
  import   javax.swing.event.*;  
   
  class   TextTestFrame   extends   JFrame     //implements     FocusListener  
  {     public   TextTestFrame()  
        {     setTitle("TextTest");  
              setSize(300,   200);  
              addWindowListener(new   WindowAdapter()  
              {     public   void   windowClosing(WindowEvent   e)  
                    {     System.exit(0);  
                    }  
              });    
   
      //addFocusListener(this);    
       
      Container   contentPane   =   getContentPane();  
   
              JPanel   p   =   new   JPanel();  
              hourField   =   new   JTextField("12",   3);  
              p.add(hourField);  
   
              minuteField   =   new   JTextField("00",   3);  
               
              p.add(minuteField);  
      //minuteField.setVisible(true);  
      minuteField.requestFocus()  
      //minuteField.transferFocus();  
   
              contentPane.add(p,   "South");  
        }  
   
        /*public   void   focusLost(FocusEvent   evt)  
        {  
        }  
        public   void   focusGained(FocusEvent   evt)  
        {  
                minuteField.requestFocus();  
        }*/  
        private   JTextField   hourField;  
        private   JTextField   minuteField;  
   
  }  
   
  public   class   TextTest  
  {     public   static   void   main(String[]   args)  
        {     JFrame   frame   =   new   TextTestFrame();  
              frame.show();  
        }  
  }  
   
   
   
   
  ///////////////////////  
  all   of   these   program   ,   no   one   is   sucessful   ,   who   can   tell   me   ,   what's   wrong   with   me   ?  
   
  Top

3 楼James_ZC(巫山剑圣)回复于 2002-04-18 16:51:27 得分 40

You   can   try   it   :  
   
  import   java.awt.*;  
  import   java.awt.event.*;  
  import   javax.swing.*;  
  import   javax.swing.event.*;  
   
  class   TextTestFrame   extends   JFrame      
  {      
        private   JTextField   hourField;  
        private   JTextField   minuteField;  
        private   NmFocusListener   aFocusListener   =   new   NmFocusListener()   ;  
        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("12",   3);  
              hourField.addFocusListener(aFocusListener);  
              p.add(hourField);  
   
              minuteField   =   new   JTextField("00",   3);  
              minuteField.addFocusListener(aFocusListener)   ;  
              //minuteField.requestFocus();  
              p.add(minuteField);  
   
              contentPane.add(p,   "South");  
              toFront();  
               
        }  
   
          class   NmFocusListener   extends   FocusAdapter  
          {          
                  public   void   focusGained(FocusEvent   event)  
                  {  
                          minuteField.requestFocus();  
                  }  
          }//   of   inner   class   NmFoucsListener  
  }  
   
  public   class   TextTest  
  {     public   static   void   main(String[]   args)  
        {     TextTestFrame   frame   =   new   TextTestFrame();  
              frame.show();  
        }  
  }  
  Top

4 楼drinkant(喝酒的蚂蚁)回复于 2002-04-18 17:09:11 得分 0

:)  
  一个最最最最无赖的办法:   模拟鼠标事件发送给那个buttonTop

5 楼drinkant(喝酒的蚂蚁)回复于 2002-04-18 17:18:47 得分 20

刚才看了一下awt,默认的焦点遍历顺序就是你的component的加入顺序  
  呵呵,   再try一下看看哈Top

6 楼James_ZC(巫山剑圣)回复于 2002-04-18 17:23:53 得分 40

The   following   code   should   meet   ur   request,pls   try   it:  
   
  import   java.awt.*;  
  import   java.awt.event.*;  
  import   javax.swing.*;  
  import   javax.swing.event.*;  
   
  class   TextTestFrame   extends   JFrame      
  {      
        private   JTextField   hourField;  
        private   JTextField   minuteField;  
        private   NmFocusListener   aFocusListener   =   new   NmFocusListener()   ;  
        private   static   int   x   =   0   ;  
         
        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("12",   3);  
              hourField.addFocusListener(aFocusListener);  
              p.add(hourField);  
              minuteField   =   new   JTextField("00",   3);  
              minuteField.addFocusListener(aFocusListener)   ;  
              p.add(minuteField);  
              contentPane.add(p,   "South");  
              toFront();  
        }  
   
          class   NmFocusListener   extends   FocusAdapter  
          {  
                  public   void   focusGained(FocusEvent   event)  
                  {  
                          if(x   ==   0)  
                          {  
                                  minuteField.requestFocus();  
                                  x++   ;  
                          }  
                  }  
          }  
  }  
   
  public   class   TextTest  
  {     public   static   void   main(String[]   args)  
        {     TextTestFrame   frame   =   new   TextTestFrame();  
              frame.show();  
        }  
  }  
  Top

相关问题

  • AWT和SWING?
  • awt和swing有何不同?
  • 请教Swing 与AWT的关系?
  • 關於swing和awt的疑問
  • 熟悉awt和swing的来看看
  • 有谁既会AWT又会SWING的?
  • 到底要用哪个??SWING还是AWT?
  • awt和swing现在还用的着吗?
  • 是用AWT?还是用JFC?欢迎参与~~~~
  • swing是轻量级的容器,awt是重量级的,但swing继承自awt,极度疑惑中。。。。。

关键词

  • swing
  • program
  • texttestframe
  • minutefield
  • hourfield
  • requestfocus
  • texttest
  • awt
  • jtextfield
  • jframe

得分解答快速导航

  • 帖主:chinesealbert
  • James_ZC
  • drinkant
  • James_ZC

相关链接

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

广告也精彩

反馈

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