http://topic.csdn.net/u/20080110/17/17a6193c-e848-415b-adcc-5cd38c71facc.html
/*
* ColumnModelTest.java
*
* Created on 2008-1-11, 下午08:30:11
*/
package com.enrising.table;
import java.awt.BorderLayout;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JTable;
import javax.swing.event.TableModelListener;
import javax.swing.table.TableModel;
public class ColumnModelTest extends JPanel {
public ColumnModelTest() {
super(new BorderLayout());
JTable table = new JTable(new MyTableModel());
add(new JScrollPane(table), BorderLayout.CENTER);
TableSorter ts = new TableSorter(table.getModel(), table.getTableHeader());
table.setModel(ts);
}
public static void createAndShowGUI() {
JFrame f = new JFrame("ColumnModelTest");
f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
f.getContentPane().add(new ColumnModelTest(), BorderLayout.CENTER);
f.pack();
f.setVisible(true);
}
public static void main(String args[]) {
javax.swing.SwingUtilities.invokeLater(new Runnable() {
@Override
public void run() {
createAndShowGUI();
}
});
}
public static class MyTableModel implements TableModel {
Object[][] p = {
{
new Boolean(false), "人事部", "12311", "无名", "男", "19920103", "本科", "物理"
}, {
new Boolean(false), "人事部", "12312", "无名", "男", "19920103", "本科", "物理"
}, {
new Boolean(false), "人事部", "12313", "无名", "男", "19920103", "本科", "物理"
}, {
new Boolean(false), "人事部", "12314", "无名", "男", "19920103", "本科", "物理"
}
};
String[] n = {
"选择", "部门", "教师编码", "姓名", "性别", "生日", "最终学历", "研究领域"
};
public int getColumnCount() {
return n.length;
}
public int getRowCount() {
return p.length;
}
public String getColumnName(int col) {
return n[col];
}
public Object getValueAt(int row, int col) {
return p[row][col];
}
public Class getColumnClass(int c) {
return getValueAt(0, c).getClass();
}
public boolean isCellEditable(int rowIndex, int columnIndex) {
return true;
}
public void setValueAt(Object value, int row, int col) {
p[row][col] = value;
fireTableCellUpdated(row, col);
}
private void fireTableCellUpdated(int row, int col) {
// TODO Auto-generated method stub
}
public void addTableModelListener(TableModelListener l) {
}
public void removeTableModelListener(TableModelListener l) {
}
}
}
分享到:
相关推荐
这个实例“java--JTable排序实例源码”提供了一个功能,允许用户通过点击表头对`JTable`中的数据进行排序。这种功能在处理大量数据时非常实用,使得用户能轻松地查看和理解数据。 首先,我们来深入了解一下`JTable`...
这篇博客文章“GridBagLayout && JTable 排序”可能涉及了如何在使用`GridBagLayout`布局的同时,实现`JTable`的数据排序功能。 `GridBagLayout`的工作原理是通过`GridBagConstraints`对象来设置每个组件的约束条件...
### JTable排序机制 默认情况下,`JTable`并不支持排序功能。要实现排序,你需要自定义一个表模型或者使用已存在的表模型扩展,如`AbstractTableModel`或`DefaultTableModel`,并实现相应的排序逻辑。另一种方法是...
本篇文章将详细介绍如何实现`JTable`表头的排序功能,并提供两种不同的实现方法。 ### 方法一:使用DefaultTableColumnModel的Comparator `DefaultTableColumnModel`是`JTable`默认使用的列模型,它支持列的排序...
然而,`JTable` 默认并不支持排序功能,这可能会在开发过程中带来不便。本文将深入探讨如何解决`JTable`的排序问题,以便用户可以按需对表格数据进行升序或降序排列。 首先,`JTable` 的排序问题可以通过引入`...
"Jtable表格分三组排序(支持中文)"这个标题暗示我们需要实现一个功能,即允许用户按照多列进行排序,首先根据第一列(A列),然后是第二列(B列),最后是第三列(C列)。当第一列的值相同时,根据第二列进行排序...
java实现的,一种JTable中多列排序的实现方法
这个标签暗示我们这个压缩包可能包含了实现JTable排序功能的代码或者教程。 文件名列表中: 1. SortJTable.jcd、SortJTable.jcp、SortJTable.jcu、SortJTable.jcw - 这些文件扩展名不常见,可能属于某种特定的项目...
它提供了丰富的功能,如排序、选择和编辑。然而,`JTable`默认并不支持行间的拖放(Drag and Drop, DnD)操作。本文将详细介绍如何通过一种简单的方法,为`JTable`添加行间拖拽功能,而无需对已有代码进行大规模修改...
JTable的使用收藏 1.JTable与TableModel 1.TableModel与JTable的关系 ...4.表格排序 3. JTable事件响应和项目设想 4.一个游戏:《java连连看》 1.需求分析 2.编写TableModel和界面实现 3.连连看事件监听 总结和任务
在实际使用中,`JTable`提供了丰富的功能,如排序、选择、编辑单元格等。可以通过设置列的`ColumnModel`来控制列的宽度、是否可编辑等属性。另外,`JTable`可以与`JComboBox`、`JCheckBox`等其他组件集成,实现复杂...
5. **排序行**:`JTable`本身不支持排序,但可以结合`RowSorter`实现排序功能。 ### 列操作 1. **添加列**:`addColumn(Object columnIdentifer, Object[] data)`方法用于添加新列,`columnIdentifer`是列头名称,...
`JTable`提供了丰富的功能,包括但不限于数据编辑、排序、过滤、选择等。开发者可以根据需要自定义`TableModel`来适应不同的数据结构,或者通过监听`JTable`的各种事件来实现特定的功能,如单元格更改、行选择等。`...
2. **排序**:jTable可以实现自动排序。只需设置`AutoCreateRowSorter`属性为`true`,用户点击表头即可进行排序。 3. **列宽调整**:用户可以通过拖动列边框来调整列宽。开发者也可以通过`setColumnWidth()`方法...
jTable 支持许多高级特性,如自定义列显示、本地化、列过滤、行选择、行操作、列排序等。这些特性可以通过配置选项来启用或定制,以满足特定项目需求。 **5. jTable 和 ASP.NET MVC 的整合优势** - **简洁的API**:...
JTable能够方便地创建和管理表格数据,同时也支持用户交互,如编辑单元格、排序、选择行等操作。下面我们将深入探讨JTable的使用方法和特性。 首先,JTable的类继承结构如下: 1. `java.lang.Object` 2. `java.awt...
- **排序功能**:用户可以通过点击表头来对数据进行升序或降序排序。 - **搜索过滤**:提供内置的搜索框,允许用户根据需要筛选数据。 - **列选择**:允许用户自定义显示哪些列,提供更好的用户体验。 - **行操作**...
JTable不仅可以显示数据,还允许用户与数据进行交互,如编辑、排序和选择。在Java编程中,掌握JTable的使用对于创建功能丰富的图形化界面至关重要。 1. **JTable的基本结构** JTable由`DefaultTableModel`驱动,它...
- **排序和过滤**:`JTable`支持列排序,只需单击列头即可。通过`TableRowSorter`可以实现数据过滤。 - **事件处理**:`JTable`的行、列选择和单元格点击都可监听,可以自定义事件处理器来响应用户的操作。 - **...