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

解决方案 »

  1.   

    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 ?
      

  2.   

    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();
       }
    }
      

  3.   

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

  4.   

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

  5.   

    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();
       }
    }