1、解决JTable 显示问题
2、更方便的更新JTable 内容
3、希望更了解,Swing 内核机制的 请给与补充。
赞为解决问题:需要通知调用TableModelEvent 实现实时刷新
需要用到 一个自定义Annotation
import java.lang.annotation.Documented;
import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;
@Documented
@Target({ElementType.FIELD,ElementType.METHOD})
@Retention(RetentionPolicy.RUNTIME)
public @interface TableAnnotation {
String name();
boolean isedit() default false;
int width() default 0;
}
主要用于直接获取 需要转换对象 显示的 列名称
实现TableModel 接口
class Model<E> implements TableModel{
private List<E> values;
private Class<?> clazz;
private List<TableAnnotation> ants = new ArrayList<TableAnnotation>();
private List<Class<?>> clazzs = new ArrayList<Class<?>>();
private List<Field> fields = new ArrayList<Field>();
//构造方法将需要,用于显示的List传入,解析需要具体显示的行及其他信息
public Model(List<E> values,Class<?> clazz){
this.values = values;
this.clazz = clazz;
Field[] fieldss = clazz.getFields();
for(int i=0;i<fieldss.length;i++){
Field f = fieldss[i];
TableAnnotation ant = f.getAnnotation(TableAnnotation.class);
if(ant != null){
fields.add(f);
this.ants.add(ant);
clazzs.add(f.getDeclaringClass());
}
}
}
@Override
public int getRowCount() {
return values.size();
}
@Override
public int getColumnCount() {
return ants.size();
}
@Override
public String getColumnName(int columnIndex) {
return ants.get(columnIndex).name();
}
@Override
public Class<?> getColumnClass(int columnIndex) {
return clazzs.get(columnIndex);
}
@Override
public boolean isCellEditable(int rowIndex, int columnIndex) {
return false;
}
@Override
public Object getValueAt(int rowIndex, int columnIndex) {
try {
return fields.get(columnIndex).get(values.get(rowIndex));
} catch (IllegalArgumentException e) {
e.printStackTrace();
} catch (IllegalAccessException e) {
e.printStackTrace();
}
return null;
}
@Override
public void setValueAt(Object aValue, int rowIndex, int columnIndex) {
}
@Override
public void addTableModelListener(TableModelListener l) {
}
@Override
public void removeTableModelListener(TableModelListener l) {
}
}
直接创建JTalbe,使用以上Model即可动态改变JTalbe
分享到:
相关推荐
### Java Swing JTable 分页实现详解 #### 一、引言 在开发基于Java Swing的应用程序时,我们经常需要处理大量的数据展示问题。对于表格形式的数据展示,`JTable`是一个非常常用且强大的组件。然而,当数据量过大时...
Java Swing高级空件JTable的用法 Java Swing中的JTable组件是用于显示和编辑数据的表格控件。它是Swing中最复杂和强大的组件之一,具有许多高级功能和灵活的配置选项。下面将详细介绍JTable的用法和相关知识点。 1...
Java Swing 中的 JTable 是一个功能强大且灵活的表格组件,广泛应用于各种桌面应用程序中。然而,在实际开发中,我们经常需要检测单元格数据的变更事件,以便实时响应用户的操作。今天,我们将探讨 Java Swing 中...
### Java中的JTable用法详解 #### 一、概述 JTable是Swing框架中用于显示和编辑表格数据的关键组件之一。它不仅提供了强大的数据管理功能,还支持丰富的定制选项,使得开发者能够根据具体需求创建出高度个性化的...
Java Swing 表格分页实现 Java Swing 是一个用于构建图形用户界面的 Java 库,提供了丰富的用户界面组件和功能。...通过使用 Java Swing,我们可以轻松地实现表格分页功能,从而提高应用程序的性能和响应速度。
在标题"java swing 表头不可拖动"中,提到的问题是关于如何在Java Swing应用中阻止JTable的列头进行拖动操作。这通常是通过自定义JTable或其相关的HeaderView来实现的。在Swing中,JTable的表头(表头即列头)是由...
在“Java Swing漂亮界面 超酷 JavaSwing教程”中,我们主要会探讨如何利用Swing来设计美观且用户友好的界面。Swing组件的一大优点是它们是轻量级的,这意味着它们完全由Java代码实现,而不是依赖于操作系统提供的...
Java中的JTable是Swing库中的一个核心组件,主要用于展示和操作二维数据集。这篇文章将带你深入了解JTable的使用方法。 首先,JTable的核心在于它能够动态地展示数据,这通常是一个二维数组,如`Object[][] data`。...
在Java的Swing库中,`JTable`是用于创建数据网格视图的重要组件,它允许用户以表格的形式查看和操作数据。而`JButton`则是一个常用的按钮控件,通常用于触发某些动作或事件。将`JButton`添加到`JTable`中可以为用户...
在Java编程环境中,`JTable`是Swing库中的一个核心组件,用于展示二维数据集,通常用于创建表格视图。这个组件对于用户界面(UI)设计尤其重要,尤其是在需要显示和编辑数据库或其他数据源数据时。下面我们将深入...
在Java Swing中,开发者可以使用一系列组件来构建用户界面,其中`JMenu`、`JTable`和`JTree`是三个非常关键的组件,它们在构建功能丰富的交互式应用中扮演着重要角色。 1. **JMenu组件**: `JMenu`组件用于创建...
在Java Swing编程中,JTable是一个不可或缺的组件,用于展示二维数据并允许用户进行交互。它提供了丰富的功能,包括数据的显示、编辑以及对行和列的操作。以下是对JTable常用操作的详细说明: **一、创建表格控件**...
在Java Swing库中,`JTable`是一个非常重要的组件,用于展示二维数据表格。当我们需要在`JTable`中实现更复杂的交互,比如在一个单元格内放置多个按钮时,这通常涉及到自定义`TableCellRenderer`和`TableCellEditor`...
Java Swing是Java GUI(图形...综上所述,Java Swing的基本用法涵盖了组件的使用、布局管理、事件处理等多个方面,是构建Java桌面应用不可或缺的技能。通过学习和实践,开发者能够创建出功能丰富、用户友好的图形界面。
总结以上内容,JTable作为Swing库中的一个组件,在Java桌面应用开发中扮演着重要的角色。通过JDBC与数据库交互,Swing提供的GUI组件和事件处理机制,开发者可以设计出功能丰富且用户友好的应用程序界面。在具体使用...
在Swing框架中,`JTable`是构建GUI应用程序中表格的主要组件。它继承自`JComponent`类,这使得`JTable`能够支持丰富的图形用户界面功能。下面展示了`JTable`的类层次结构: 1. `java.lang.Object` - `java.awt....
### Java中JTable的用法 ...综上所述,JTable作为Swing框架中的核心组件之一,在Java桌面应用程序中扮演着重要角色。通过对上述各项特性的了解与应用,开发者可以轻松构建出既美观又实用的表格界面。
Swing中的JTable组件是Java GUI开发中用于展示表格数据的重要工具,它是Swing库中的一个核心组件。JTable能够方便地创建和管理表格数据,同时也支持用户交互,如编辑单元格、排序、选择行等操作。下面我们将深入探讨...
Java Swing是Java标准库中的一个组件集合,用于构建桌面应用程序用户界面。它是Java Foundation Classes (JFC)的一部分,提供了一套轻量级的GUI(图形用户界面)组件,支持丰富的交互功能。本离线API文档详细阐述了...