`

Swing中设置按Tab键后焦点的顺序

    博客分类:
  • java
阅读更多

Swing中设置按Tab键后焦点的顺序

 

import javax.swing.*;
import java.awt.*;
import java.util.Arrays;
import java.util.ArrayList;/**
 * <p>Title: </p>
 *
 * <p>Description: </p>
 *
 * <p>Copyright: Copyright (c) 2008</p>
 *
 * <p>Company: </p>
 *
 * @author not attributable
 * @version 1.0
 */
public class BorderFocus {
  public static void main(String args[]) {
    JFrame frame = new JFrame("Focus Cycling");
    frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    Container contentPane = frame.getContentPane();
    JButton north = new JButton("North");
    contentPane.add(north, BorderLayout.NORTH);
    JButton south = new JButton("South");
    contentPane.add(south, BorderLayout.SOUTH);
    JButton east = new JButton("East");
    contentPane.add(east, BorderLayout.EAST);
    JButton west = new JButton("West");
    contentPane.add(west, BorderLayout.WEST);
    JButton center = new JButton("Center");
    contentPane.add(center, BorderLayout.CENTER);
    contentPane.setFocusable(false);
     ArrayList<Component> list = new ArrayList<Component>();
     
     list.add(north);
     list.add(east);
     list.add(south);
     list.add(west);
     list.add(center);
     final ArrayList comList = list;
    FocusTraversalPolicy policy = new FocusTraversalPolicy() {
      public Component getFirstComponent(Container focusCycleRoot) {
        return  (Component)comList.get(0);
      }
      public Component getLastComponent(Container focusCycleRoot) {
        return (Component) comList.get(comList.size()-1);
      }
      public Component getComponentAfter(Container focusCycleRoot, 
          Component aComponent) {
        int index = comList.indexOf(aComponent);
        
        return (Component) comList.get((index + 1) % comList.size());
      }
      public Component getComponentBefore(Container focusCycleRoot, 
          Component aComponent) {
        int index = comList.indexOf(aComponent);
        return (Component) comList.get((index - 1 + comList.size()) % comList.size());
      }
      public Component getDefaultComponent(Container focusCycleRoot) {
        return (Component) comList.get(0);
      }
    };
    frame.setFocusTraversalPolicy(policy);
    frame.pack();
    frame.show();
   }
}

 

分享到:
评论

相关推荐

    Use the Enter Key Like a Tab

    描述部分没有提供额外的信息,但我们可以根据标题推测,这可能涉及到编写代码或设置,使用户在按下回车键时,焦点能够按照预设顺序在表单的各个控件间移动,就像使用Tab键一样。 标签“另类其它 控件 源码 资源”...

    java图形编程:java焦点管理专题.pdf

    Swing的焦点管理器会考虑组件的X轴和Y轴坐标,使得在同一行上的组件按从左到右的顺序获取焦点,不同行之间则是较高行先于较低行。 Java 1.4引入的焦点控制系统包括两个核心抽象类:FocusTraversalPolicy和...

    2021-2022计算机二级等级考试试题及答案No.12490.docx

    14. **Tab键顺序**:在Windows应用程序开发中,通过“格式”选项卡可以设置控件的Tab键顺序,以决定用户按Tab键时焦点在控件间的移动顺序。 15. **数据类型转换**:在C/C++中,整型变量不能直接赋值给长整型变量,...

    Window Builder功能介绍

    Tab顺序(Tab Order)功能则是用来设置用户在使用Tab键切换焦点时,各组件的访问顺序。 Window Builder支持的组件有: - JPanel:轻量级的容器,可以在Swing应用程序中使用,但需要放置于顶层容器中才能显示。 - ...

    2021-2022计算机二级等级考试试题及答案No.11226.docx

    - **Tab键顺序**:在窗体设计中,Tab键顺序决定了用户按下Tab键时焦点移动的顺序。 - **设置位置**:在属性对话框中选择“数据”选项卡,可以找到设置Tab键顺序的相关选项。 #### 20. VFP循环语句 - **知识点...

    2021-2022计算机二级等级考试试题及答案No.15275.docx

    如果文本框的`TabStop`属性为`False`,则意味着该文本框不在Tab顺序中,但仍可以接收键盘输入的数据。 - B. 当文本框失去焦点时,会触发`LostFocus`事件,这是正确的。 - C. 当文本框的`Enabled`属性为`False`时...

    2021-2022计算机二级等级考试试题及答案No.5164.docx

    3. 数据表视图操作:在数据库管理系统中,使用Tab键可以在数据表的不同字段间移动光标,便于编辑和浏览数据。 4. 选择图标:在Windows操作系统中,按住Ctrl键可以选择不连续的图标,而按住Shift键可以选择连续的一...

    2021-2022计算机二级等级考试试题及答案No.13028.docx

    这是因为`Tabindex`属性决定了用户通过Tab键导航至各个控件的顺序,数值越小,优先级越高。 ### 2. E-R图转关系模型 实体-联系模型(Entity-Relationship Model, E-R Model)是一种用于描述现实世界中实体及其相互...

    2021-2022计算机二级等级考试试题及答案No.17497.docx

    - **属性**:在设置窗体上控件的Tab键顺序时,需要在属性对话框中选择“数据”选项卡来进行设置。 - **目的**:确保用户通过Tab键移动焦点时按照预期的顺序访问各个控件。 ### 20. 数据库设计的需求分析 - **内容**...

    2021-2022计算机二级等级考试试题及答案No.13459.docx

    - **TabIndex属性**:决定了当用户按下Tab键时,焦点移动到控件的顺序。设置`TabIndex`属性并不能直接阻止用户将光标置于控件上。 - **TabStop属性**:如果设为`True`,表示该控件是Tab顺序的一部分;设为`False`时...

    2021-2022计算机二级等级考试试题及答案No.13977.docx

    - **应用场景**:在设计用户界面时,通过设置控件的`Tabindex`属性可以控制用户通过Tab键切换控件的顺序。 ### 16. 企业应用三层架构 - **知识点**:三层架构通常包括界面层、业务逻辑层和数据访问层。 - **应用...

    2021-2022计算机二级等级考试试题及答案No.18195.docx

    - **Tabindex属性**:在HTML中,设置元素的`tabindex`属性可以控制页面上元素的焦点顺序。 - **应用场景**:当需要定制用户在页面上使用Tab键时的导航顺序时,例如在表单中。 #### 7. Internet通信基础 - TCP/IP **...

Global site tag (gtag.js) - Google Analytics