一.创建表格
1) 调用无参构造函数.
JTable table = new JTable();
2) 以表头和表数据创建表格,并且让表单元格不可改.
String[] headers = { "表头一", "表头二", "表头三" };
Object[][] cellData = null;
3) 利用TableModel
DefaultTableModel model = new DefaultTableModel(cellData, headers) {
//此处设置单元格时否可以被编辑。如果要精确控制某个单元格或者行列可以编辑,只要在此方法中做简单编程即可。
public boolean isCellEditable(int row, int column) {
return false;
}
};
table = new JTable(model);
二.对列的操作
1) 设置列不可随容器组件大小变化自动调整宽度.
table.setAutoResizeMode(JTable.AUTO_RESIZE_OFF);
2) 限制某列的宽度(并不完全好用).
TableColumn firsetColumn = table.getColumnModel().getColumn(0);
firsetColumn.setPreferredWidth(30);
firsetColumn.setMaxWidth(30);
firsetColumn.setMinWidth(30);
3) 设置当前列数.
DefaultTableModel tableModel = (DefaultTableModel) table.getModel();
int count=5;
tableModel.setColumnCount(count);
4) 取得表格列数
int cols = table.getColumnCount();
5) 添加列
DefaultTableModel tableModel = (DefaultTableModel) table.getModel();
tableModel.addColumn("新列名");
6) 删除列
// columnIndex是要删除的列序号
table.removeColumn(table.getColumnModel().getColumn(columnIndex));
三.对行的操作
1) 设置行高
table.setRowHeight(20);
2) 设置当前航数
DefaultTableModel tableModel = (DefaultTableModel) table.getModel();
int n=5;
tableModel.setRowCount(n);
3) 取得表格行数
int rows = table.getRowCount();
4) 添加表格行
DefaultTableModel tableModel = (DefaultTableModel) table.getModel();
tableModel.addRow(new Object[]{"sitinspring", "35", "Boss"});
5) 删除表格行
DefaultTableModel tableModel = (DefaultTableModel) table.getModel();
// rowIndex是要删除的行序号
model.removeRow(rowIndex);
5) 得到选中行(行号)
int selectedRowIndex = table.getSelectedRow();
// 用户所选行的序列
int[] selRowIndexs=table.getSelectedRows();
四.三.对单元格的操作
1) 取得单元格数据
DefaultTableModel tableModel = (DefaultTableModel) table.getModel();
// 取单元格数据,row是行号,column是列号
String cellValue=(String) tableModel.getValueAt(row, column);
2) 设置单元格数据
tableModel.setValueAt(aValue, rowIndex, columnIndex);
3) 结束单元格编辑
table.getCellEditor().stopCellEditing();
分享到:
相关推荐
本篇文章将深入探讨`JTable`如何操作单元格、行和列,以帮助你更好地理解和运用这一功能强大的组件。 ### 单元格操作 1. **创建和设置单元格值**:`JTable`中的每个单元格都由一个`DefaultTableModel`管理。你可以...
Swing JTable组件设置单元格合并,内置Test测试类,核心API GridBagTable tasktable = new GridBagTable(model); tasktable.mergeCells(startRow, endRow, 0, 0);
例如,为了创建一个标题行或列,或者在某些情况下合并具有相同数据的单元格以减少重复,合并单元格就显得尤为重要。以下是对`JTable`合并单元格的详细解释。 首先,`JTable`本身并不直接支持单元格的合并功能。要...
Java Swing 实现 JTable 检测单元格数据变更事件的方法示例 Java Swing 中的 JTable 是一个功能强大且灵活的表格组件,广泛应用于各种桌面应用程序中。然而,在实际开发中,我们经常需要检测单元格数据的变更事件...
实现设置JTable中某些单元格的背景色
这样,每个单元格实际上就是一个包含多个按钮的小容器。 1. **创建自定义`TableCellRenderer`**: 首先,你需要继承`DefaultTableCellRenderer`类,并重写`getTableCellRendererComponent`方法。在这个方法中,你...
// 告诉JTable列中的数据类型是CheckBox } @Override public boolean isCellEditable(int rowIndex, int columnIndex) { return true; // 允许编辑,这样用户可以点击CheckBox } @Override public Object ...
在Java Swing库中,JTable是一个非常重要的组件,用于显示和操作二维数据集。这个组件在用户界面设计中广泛使用,因为它提供了丰富的交互性,包括排序、选择和编辑表格数据。"复杂JTable-跨列表头"是一个特殊实现,...
### Java Swing JTable 经典列设置与表格颜色设置详解 #### 一、概述 本文档将详细介绍如何在Java Swing框架下使用`JTable`组件进行经典列设置以及表格颜色的自定义设置,并通过一个实际的例子展示如何实现这些...
在处理`JTable`时,我们有时需要使其单元格内容支持自动换行,以便更好地显示长文本。标题“JTable自动换行”正是指向这个功能,即如何在`JTable`的单元格内实现文本的自动换行。 默认情况下,`JTable`的单元格使用...
重写JTable ctrl+c的内容,实现自己定制的内容输出。
`TableModel`存储数据,`TableColumnModel`管理列,而Renderers和Editors负责显示和编辑单元格内容。为了实现行拖放,我们需要关注`TableModel`,因为它是数据源。 添加行拖放功能的核心在于监听`...
JTable 拖动行 移动行的ui,直接 table.setUI(new DragDropRowTableUI()); 调用
跨行列表体通常涉及到单元格合并,这在`JTable`中可以通过重写`AbstractTableModel`类的`getColumnCount()`、`getRowCount()`、`getValueAt()`等方法来实现。当某些行需要合并时,`getColumnCount()`返回的列数应该...
Vector 的每个元素都是一个行数据,行数据又是一个 Vector,包含了每个单元格的数据。这样,DefaultTableModel 可以轻松地存储和管理大量数据。 在刷新数据时,需要使用 TableModel 的 getDataVector() 方法获取...
总的来说,"jtable选中需要修改的行"涉及的主要知识点包括JTable的创建与使用、行选择监听、单元格编辑以及TableModel的管理。通过理解这些核心概念,我们可以创建出具有交互性的表格应用程序,让用户能够方便地查看...
在Java Swing库中,`JTable`是一个常用的组件,用于展示二维数据表格。当你需要对显示的数据进行控制,比如隐藏某一列,然后在...这些文件与`JTable`隐藏和显示列的直接关系较小,但在构建整个应用时可能会有其他用途。
TableModel 是一个接口,它定义了数据模型的基本操作,包括获取数据的行数、列数、单元格值等。AbstractTableModel 是一个实现了TableModel 接口的抽象类,提供了一些基本的实现。 ProductTableModel ...
封装JTable同时锁定多行多列效果,通过多层布局实现,不需要多个数据集,使用简单,不用对现有代码做改动。
// 在这里根据value或者行/列索引来决定按钮的文字和行为 for (int i = 0; i ; i++) { buttons[i] = new JButton("Button " + (i + 1)); panel.add(buttons[i], new GridBagConstraints(i, 0, 1, 1, 1, 1, ...