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();
}
}
分享到:
相关推荐
描述部分没有提供额外的信息,但我们可以根据标题推测,这可能涉及到编写代码或设置,使用户在按下回车键时,焦点能够按照预设顺序在表单的各个控件间移动,就像使用Tab键一样。 标签“另类其它 控件 源码 资源”...
Swing的焦点管理器会考虑组件的X轴和Y轴坐标,使得在同一行上的组件按从左到右的顺序获取焦点,不同行之间则是较高行先于较低行。 Java 1.4引入的焦点控制系统包括两个核心抽象类:FocusTraversalPolicy和...
14. **Tab键顺序**:在Windows应用程序开发中,通过“格式”选项卡可以设置控件的Tab键顺序,以决定用户按Tab键时焦点在控件间的移动顺序。 15. **数据类型转换**:在C/C++中,整型变量不能直接赋值给长整型变量,...
Tab顺序(Tab Order)功能则是用来设置用户在使用Tab键切换焦点时,各组件的访问顺序。 Window Builder支持的组件有: - JPanel:轻量级的容器,可以在Swing应用程序中使用,但需要放置于顶层容器中才能显示。 - ...
- **Tab键顺序**:在窗体设计中,Tab键顺序决定了用户按下Tab键时焦点移动的顺序。 - **设置位置**:在属性对话框中选择“数据”选项卡,可以找到设置Tab键顺序的相关选项。 #### 20. VFP循环语句 - **知识点...
如果文本框的`TabStop`属性为`False`,则意味着该文本框不在Tab顺序中,但仍可以接收键盘输入的数据。 - B. 当文本框失去焦点时,会触发`LostFocus`事件,这是正确的。 - C. 当文本框的`Enabled`属性为`False`时...
3. 数据表视图操作:在数据库管理系统中,使用Tab键可以在数据表的不同字段间移动光标,便于编辑和浏览数据。 4. 选择图标:在Windows操作系统中,按住Ctrl键可以选择不连续的图标,而按住Shift键可以选择连续的一...
这是因为`Tabindex`属性决定了用户通过Tab键导航至各个控件的顺序,数值越小,优先级越高。 ### 2. E-R图转关系模型 实体-联系模型(Entity-Relationship Model, E-R Model)是一种用于描述现实世界中实体及其相互...
- **属性**:在设置窗体上控件的Tab键顺序时,需要在属性对话框中选择“数据”选项卡来进行设置。 - **目的**:确保用户通过Tab键移动焦点时按照预期的顺序访问各个控件。 ### 20. 数据库设计的需求分析 - **内容**...
- **TabIndex属性**:决定了当用户按下Tab键时,焦点移动到控件的顺序。设置`TabIndex`属性并不能直接阻止用户将光标置于控件上。 - **TabStop属性**:如果设为`True`,表示该控件是Tab顺序的一部分;设为`False`时...
- **应用场景**:在设计用户界面时,通过设置控件的`Tabindex`属性可以控制用户通过Tab键切换控件的顺序。 ### 16. 企业应用三层架构 - **知识点**:三层架构通常包括界面层、业务逻辑层和数据访问层。 - **应用...
- **Tabindex属性**:在HTML中,设置元素的`tabindex`属性可以控制页面上元素的焦点顺序。 - **应用场景**:当需要定制用户在页面上使用Tab键时的导航顺序时,例如在表单中。 #### 7. Internet通信基础 - TCP/IP **...