首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > JAVA > J2ME开发 >

AWT/Swing控件的tab顺怎么设定

2012-12-14 
AWT/Swing控件的tab顺如何设定如题,求教AWT/Swing控件的tab顺如何设定, 如buttun,lbl,checkbox...jtable如

AWT/Swing控件的tab顺如何设定
如题,求教AWT/Swing控件的tab顺如何设定, 如buttun,lbl,checkbox...jtable如何设定它们的tab顺序..
[最优解释]
Swing中设置按Tab键后焦点的顺序
转贴
 

Java代码  
1.import javax.swing.*;   
2.import java.awt.*;   
3.import java.util.Arrays;   
4.import java.util.ArrayList;/**  
5. * <p>Title: </p>  
6. *  
7. * <p>Description: </p>  
8. *  
9. * <p>Copyright: Copyright (c) 2008</p>  
10. *  
11. * <p>Company: </p>  
12. *  
13. * @author not attributable  
14. * @version 1.0  
15. */  
16.public class BorderFocus {   
17.  public static void main(String args[]) {   
18.    JFrame frame = new JFrame("Focus Cycling");   
19.    frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);   
20.    Container contentPane = frame.getContentPane();   
21.    JButton north = new JButton("North");   
22.    contentPane.add(north, BorderLayout.NORTH);   
23.    JButton south = new JButton("South");   
24.    contentPane.add(south, BorderLayout.SOUTH);   
25.    JButton east = new JButton("East");   
26.    contentPane.add(east, BorderLayout.EAST);   
27.    JButton west = new JButton("West");   
28.    contentPane.add(west, BorderLayout.WEST);   
29.    JButton center = new JButton("Center");   
30.    contentPane.add(center, BorderLayout.CENTER);   
31.    contentPane.setFocusable(false);   
32.     ArrayList<Component> list = new ArrayList<Component>();   
33.        
34.     list.add(north);   
35.     list.add(east);   
36.     list.add(south);   
37.     list.add(west);   
38.     list.add(center);   
39.     final ArrayList comList = list;   
40.    FocusTraversalPolicy policy = new FocusTraversalPolicy() {   
41.      public Component getFirstComponent(Container focusCycleRoot) {   
42.        return  (Component)comList.get(0);   
43.      }   
44.      public Component getLastComponent(Container focusCycleRoot) {   
45.        return (Component) comList.get(comList.size()-1);   


46.      }   
47.      public Component getComponentAfter(Container focusCycleRoot,    
48.          Component aComponent) {   
49.        int index = comList.indexOf(aComponent);   
50.           
51.        return (Component) comList.get((index + 1) % comList.size());   
52.      }   
53.      public Component getComponentBefore(Container focusCycleRoot,    
54.          Component aComponent) {   
55.        int index = comList.indexOf(aComponent);   
56.        return (Component) comList.get((index - 1 + comList.size()) % comList.size());   
57.      }   
58.      public Component getDefaultComponent(Container focusCycleRoot) {   
59.        return (Component) comList.get(0);   
60.      }   
61.    };   
62.    frame.setFocusTraversalPolicy(policy);   
63.    frame.pack();   
64.    frame.show();   
65.   }   
66.} 
[其他解释]
Swing控件遍历顺序是由FocusTraversalPolicy进行控制的,一般情况下是按从左到右、从上到下的顺序进行遍历的。若需要按自己要求遍历,可先定义自己的遍历规则,而后将此遍历规则设置所需容器,如:
aPanel.setFocusTraversalPolicy(new JapFocusTraversalPolicy());
[其他解释]
+

引用:
Swing中设置按Tab键后焦点的顺序
转贴
 

Java代码  
1.import javax.swing.*;   
2.import java.awt.*;   
3.import java.util.Arrays;   
4.import java.util.ArrayList;/**  
5. * <p>Title: </p>  
6. *  
7. * <p>……

热点排行