最近在做一个Java Swing的应用程序,使用到了JTable控件,需求就是当我点击Enter按键的时候,table能够换列,原先没有思路,然后再问答里提问了,有位小伙伴跟我说了用ActoinMap,非常感谢,现在问题解决了,和大家分享下,源码如下
import java.awt.BorderLayout; import java.awt.event.ActionEvent; import javax.swing.AbstractAction; import javax.swing.ActionMap; import javax.swing.JFrame; import javax.swing.JPanel; import javax.swing.JTable; import javax.swing.UIManager; import javax.swing.table.DefaultTableModel; public class JTableResponseEnterKey extends JFrame { private static final long serialVersionUID = 1L; private JPanel contentPane; private JTable table; public JTableResponseEnterKey() { init(); setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); setBounds(100, 100, 705, 502); setVisible(true); } public void init() { contentPane = new JPanel(); contentPane.setLayout(new BorderLayout(0, 0)); setContentPane(contentPane); table = new JTable(); table.setModel(new DefaultTableModel(new Object[][] { { "一", "二", "三" }, { "四", "五", "六" }, }, new String[] { "第一列", "第一列", "第一列" })); ActionMap am = (ActionMap) UIManager.get("Table.actionMap"); am.put("selectNextRowCell", new AbstractAction() { private static final long serialVersionUID = 1L; @Override public void actionPerformed(ActionEvent e) { if(table.getEditingColumn() == -1){ //假如当前没有选中编辑列,默认第一行第一列 table.editCellAt(0, 0); }else if (table.getEditingColumn() < table.getColumnCount() - 1) { System.out.println("focus下一列"); table.editCellAt(table.getEditingRow(),table.getEditingColumn() + 1); } else { System.out.println("focus下一行"); table.editCellAt(table.getEditingRow() + 1, 0); } } }); table.setActionMap(am); contentPane.add(table, BorderLayout.CENTER); } public static void main(String[] args) { new JTableResponseEnterKey(); } }
相关推荐
本篇文章将深入探讨`JTable`如何操作单元格、行和列,以帮助你更好地理解和运用这一功能强大的组件。 ### 单元格操作 1. **创建和设置单元格值**:`JTable`中的每个单元格都由一个`DefaultTableModel`管理。你可以...
重写JTable ctrl+c的内容,实现自己定制的内容输出。
`DefaultTableColumnModel`是`JTable`默认使用的列模型,它支持列的排序功能。以下是如何设置`JTable`表头排序的步骤: 1. **获取表头视图(HeaderView)**:`JTable`的表头视图是`JTableHeader`,它负责处理表头的...
"复杂JTable-跨列表头"是一个特殊实现,它扩展了JTable的功能,允许在表头中进行列的合并,这在显示层次结构或分组数据时特别有用。 跨列表头(或合并列头)的概念是将多个列的标题合并为一个大的表头单元格,通常...
除了以上的基本操作,JTable还支持其他高级特性,如监听单元格更改事件(`CellEditorListener`)、自定义单元格渲染(`TableCellRenderer`)和编辑器(`TableCellEditor`),以及表格选择和排序等。这些特性使得...
标题"支持ResultSet的JTable"暗示我们将探讨如何将`ResultSet`对象的数据绑定到`JTable`,以便在GUI中实时显示查询结果。通常,这个过程涉及到以下步骤: 1. **数据库连接**:首先,我们需要使用`DriverManager.get...
- 考虑到性能问题,避免在`getTableCellRendererComponent`方法中进行耗时的操作,因为此方法会被频繁调用。 - 如果单元格需要可编辑,还需要创建一个自定义的`TableCellEditor`,并遵循类似的过程。 - 考虑到...
JTable 数据库基本操作多行增删改查 JTable 是 Java 中一个常用的表格控件,用于显示和编辑表格数据。在 JTable 中,数据是通过TableModel 来管理的。下面将详细介绍 JTable 数据库基本操作多行增删改查的知识点。 ...
当你需要对显示的数据进行控制,比如隐藏某一列,然后在特定条件下恢复显示时,这涉及到`JTable`的列管理功能。本篇文章将深入探讨如何实现这个功能。 首先,`JTable`的列是通过`TableColumnModel`对象来管理的。`...
这在需要用户进行多选操作的界面中非常常见,比如在列表中勾选多项进行批量操作。 首先,我们从`CheckTableModle.java`文件开始,这是`JTable`的数据模型。`JTable`依赖于`TableModel`来获取和设置单元格的值。在这...
JTable使用 JTable使用JTable使用JTable使用
然而,`JTable`默认并不支持行间的拖放(Drag and Drop, DnD)操作。本文将详细介绍如何通过一种简单的方法,为`JTable`添加行间拖拽功能,而无需对已有代码进行大规模修改或实现复杂的DnD接口。 首先,理解`JTable...
在Java Swing应用中,JTable是一个非常常用的组件,用于显示和操作二维表格数据。当我们需要从Excel文件中读取数据并展示在JTable上时,就需要进行一系列的处理步骤。以下是一些关于如何实现这个过程的关键知识点: ...
本文档将详细介绍如何在Java Swing框架下使用`JTable`组件进行经典列设置以及表格颜色的自定义设置,并通过一个实际的例子展示如何实现这些功能。 #### 二、基础知识 在开始之前,我们需要了解几个基本概念: - *...
JTable的显示效果
封装JTable同时锁定多行多列效果,通过多层布局实现,不需要多个数据集,使用简单,不用对现有代码做改动。
它是`javax.swing.JTable`类的实例,提供了一个可交互的二维数据视图,允许用户浏览、编辑和操作表格中的数据。这个"JTable 练习例子exa"显然是一个实践项目,旨在帮助开发者巩固和理解`JTable`的使用。 `JTable`的...
JTable能够方便地创建和管理表格数据,同时也支持用户交互,如编辑单元格、排序、选择行等操作。下面我们将深入探讨JTable的使用方法和特性。 首先,JTable的类继承结构如下: 1. `java.lang.Object` 2. `java.awt...
jtable 提供丰富的定制选项,如自定义主题、操作列、事件监听等,可以满足不同项目的需求。同时,通过扩展插件或自定义功能,可以进一步增强 jtable 的功能。 总结,jtable 是一个功能强大且易于使用的 jQuery 插件...
接着,你可以右键点击`JTable`并选择“调整列宽”、“添加列”等操作。对于数据模型,NetBeans会自动为你创建一个`DefaultTableModel`,你可以通过代码编辑器添加和修改数据。 此外,`JTable`还支持各种事件监听,...