JTable 是swing 包中提供显示二维表的控件,一般被包裹在一个JScrollPanel 里面显示数据。
DefaultTableModel 是 TableModel
的一个实现,用来操作JTable 的数据和一些属性。
譬如 修改数据时候获取到JTable 的TableModel 进行数据的删除、增加、修改,完成之后调用JTable 的invalidate
方法来更新布局,显示数据。
下面这段代码使用TableModel 实现JTable中第一列可以编辑,其他不可以编辑,其他一些设置也可以在此中重写代码实现自己需要的功能。
DefaultTableModel defaultmodel=new DefaultTableModel(0, 4){
@Override
public boolean isCellEditable(int row, int column) {
if(column==0){
return true;
}else{
return false;
}
}
};
searchedGrid =new JTable(defaultmodel) ;
新建好JTable之后我们就可以对它的一些列做一些设置,如下
TableColumnModel columnModel = searchedGrid.getColumnModel();
TableColumn column0 = columnModel.getColumn(0);//设置第一列
column0.setHeaderValue("");
column0.setMaxWidth(30);
column0.setMinWidth(30);
column0.setResizable(false);
column0.setCellRenderer(new JCheckBoxRender());//设置渲染效果
column0.setCellEditor(new DefaultCellEditor(new JCheckBoxRender()));//设置编辑效果,
这里最好和Renderer是相同,负责会出现一点怪毛病
JCheckBoxRender.java
public class JCheckBoxRender extends JCheckBox implements TableCellRenderer
{
private static final Border noFocusBorder = new EmptyBorder(1, 1, 1, 1);
public JCheckBoxRender()
{
super();
setHorizontalAlignment(SwingConstants.CENTER);
setBorderPainted(true);
}
@Override
public Component getTableCellRendererComponent(final JTable table, final Object value,
final boolean isSelected, final boolean hasFocus, final int row, final int column)
{
setBackground(table.getBackground());
if (hasFocus)
{
setBorder(UIManager.getBorder("Table.focusCellHighlightBorder"));
}
else
{
setBorder(noFocusBorder);
}
if(column==0){
if(value instanceof Boolean){
setSelected((Boolean)value);
}
}
return this;
}
}
当然我们也可以如下做出隔行颜色不一样的Table。
searchedGrid.setDefaultRenderer(Object.class,
new DefaultTableCellRenderer() {
@Override
public Component getTableCellRendererComponent(JTable table, Object value,
boolean isSelected, boolean hasFocus, int row, int column) {
setBackground(row%2==0?Color.red:Color.green);
return super.getTableCellRendererComponent(table, value,
isSelected, hasFocus, row, column);
}
});
此外,在各位仁兄在删除数据时候,尽量从后往前删除,避免错误(这个问题是由于不管是Vector还是List 删除元素是index会发生变化,导致索引失效,一般采用一直删除第一个或者反向删除)
分享到:
相关推荐
JTable使用 JTable使用JTable使用JTable使用
swing Jtable使用checkboxswing Jtable使用checkboxswing Jtable使用checkboxswing Jtable使用checkboxswing Jtable使用checkboxswing Jtable使用checkboxswing Jtable使用checkboxswing Jtable使用checkboxswing ...
jtable使用方法介绍,很专业,内容详细,蛮有用。
在这个“JAVA JTable使用实例”中,我们将深入探讨如何有效地利用`JTable`来显示和操作数据。 首先,`JTable`是`javax.swing.JTable`类的实例,它允许我们以表格的形式展示数据。这个实例可能包括创建一个`...
JTable的使用收藏 1.JTable与TableModel 1.TableModel与JTable的关系 2.TableModel实践 3.使用JTable+TableModel展示java中的数据对象 2.JTable展示方式的美化 1.设置表格的宽度和高度 2.要显示表头 3.新加列,将...
在Java Swing库中,`JTable`是一个非常重要的组件,用于在GUI应用程序中展示数据集。它是Swing的`javax....通过实践和研究提供的示例代码,你将能够熟练地在Java Swing应用中使用`JTable`来构建功能丰富的用户界面。
深入学习jTable的使用,能够帮助开发者创建用户友好的界面,使得数据的管理与展示更加直观高效。** ### jTable的基本结构与使用 jTable由`DefaultTableModel`类驱动,它负责存储表格的数据和列信息。创建一个jTable...
在这个详细的JTable使用例子中,我们主要探讨如何利用Java Swing组件JTable来展示、操作数据库中的数据。JTable是Swing GUI中用于显示和编辑表格数据的重要组件,它提供了丰富的功能,包括添加、删除和修改表格中的...
下面我们将深入探讨`JTable`的使用方法。 1. **`JTable`的基本概念** `JTable`是`javax.swing.JTable`类的实例,它继承自`JComponent`并实现了`TableModelListener`接口。`JTable`的核心在于`TableModel`,它定义...
Java jtable使用 包括读取数据库 虚拟表模型
最后,这个"JTable使用自定义数据类型示例工程"可能包含了MWorkpace文件夹,其中可能包含了项目的源代码、编译后的类文件或相关的配置文件。这个工程提供了一个实际操作的例子,帮助开发者理解和学习如何在Swing应用...
JTable 动态刷新数据是指在 Java Swing 应用程序中,使用 JTable 组件展示数据,并实时更新数据的过程。这种技术在很多实际应用场景中非常有用,如股票交易平台、实时监控系统、电子表格等。 首先,在使用 JTable ...
在这个主题中,我们将深入探讨JTable的使用,包括它的基本概念、创建方法、与数据库的连接以及其强大的功能。 1. **基本概念** - **JTable组件**:JTable是Java AWT/Swing GUI的一部分,它继承自JComponent,用于...
在"swing中JTable的简单使用"这个主题中,我们将深入探讨如何在Java Swing应用中有效地使用JTable。 首先,JTable是javax.swing.JTable类的实例,它是JFrame或JPanel等容器中的一个组件。JTable通常与TableModel...
JTable的显示效果
这个"JTable 练习例子exa"显然是一个实践项目,旨在帮助开发者巩固和理解`JTable`的使用。 `JTable`的基本构造函数通常需要一个`TableModel`,这是`JTable`的数据源,它可以是`DefaultTableModel`或其他自定义实现...
实现jTable和jTree的双向联动,点击jTree会选中jTable单元格,点击jTable会选中jTree节点。
下面我们将深入探讨JTable的使用方法和特性。 首先,JTable的类继承结构如下: 1. `java.lang.Object` 2. `java.awt.Component` 3. `java.awt.Container` 4. `javax.swing.JComponent` 5. `javax.swing.JTable` ...
我们通常会创建一个自定义的`TableModel`子类,或者使用现有的如`DefaultTableModel`,并将其设置为`JTable`的模型。 5. **将ResultSet转换为TableModel**:为了让`JTable`能显示`ResultSet`的数据,我们需要将`...
可以直接使用 JTable 的无参构造函数创建一个空的表格控件,例如:`JTable table = new JTable();` 2. 以表头和表数据创建表格 可以使用表头和表数据创建一个 JTable,例如: ``` Object[][] cellData = {{"row1-...