`
hrdsalon
  • 浏览: 1636 次
社区版块
存档分类
最新评论

Java Swing JTable 高级用法

阅读更多
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的用法

    Java Swing高级空件JTable的用法 Java Swing中的JTable组件是用于显示和编辑数据的表格控件。它是Swing中最复杂和强大的组件之一,具有许多高级功能和灵活的配置选项。下面将详细介绍JTable的用法和相关知识点。 1...

    Java Swing实现JTable检测单元格数据变更事件的方法示例

    Java Swing 中的 JTable 是一个功能强大且灵活的表格组件,广泛应用于各种桌面应用程序中。然而,在实际开发中,我们经常需要检测单元格数据的变更事件,以便实时响应用户的操作。今天,我们将探讨 Java Swing 中...

    java 中 Jtable的用法

    ### Java中的JTable用法详解 #### 一、概述 JTable是Swing框架中用于显示和编辑表格数据的关键组件之一。它不仅提供了强大的数据管理功能,还支持丰富的定制选项,使得开发者能够根据具体需求创建出高度个性化的...

    java_swing表格分页

    Java Swing 表格分页实现 Java Swing 是一个用于构建图形用户界面的 Java 库,提供了丰富的用户界面组件和功能。...通过使用 Java Swing,我们可以轻松地实现表格分页功能,从而提高应用程序的性能和响应速度。

    java swing 表头不可拖动

    在标题"java swing 表头不可拖动"中,提到的问题是关于如何在Java Swing应用中阻止JTable的列头进行拖动操作。这通常是通过自定义JTable或其相关的HeaderView来实现的。在Swing中,JTable的表头(表头即列头)是由...

    java swing漂亮界面 超酷 javaswing教程

    在“Java Swing漂亮界面 超酷 JavaSwing教程”中,我们主要会探讨如何利用Swing来设计美观且用户友好的界面。Swing组件的一大优点是它们是轻量级的,这意味着它们完全由Java代码实现,而不是依赖于操作系统提供的...

    Java中JTable的用法.doc

    Java中的JTable是Swing库中的一个核心组件,主要用于展示和操作二维数据集。这篇文章将带你深入了解JTable的使用方法。 首先,JTable的核心在于它能够动态地展示数据,这通常是一个二维数组,如`Object[][] data`。...

    Swing中JTABLE中添加JBUTTON控件

    在Java的Swing库中,`JTable`是用于创建数据网格视图的重要组件,它允许用户以表格的形式查看和操作数据。而`JButton`则是一个常用的按钮控件,通常用于触发某些动作或事件。将`JButton`添加到`JTable`中可以为用户...

    JAVA中JTable的使用方法

    在Java编程环境中,`JTable`是Swing库中的一个核心组件,用于展示二维数据集,通常用于创建表格视图。这个组件对于用户界面(UI)设计尤其重要,尤其是在需要显示和编辑数据库或其他数据源数据时。下面我们将深入...

    Java Swing Menu组件,JTable组件,JTree组件小示例

    在Java Swing中,开发者可以使用一系列组件来构建用户界面,其中`JMenu`、`JTable`和`JTree`是三个非常关键的组件,它们在构建功能丰富的交互式应用中扮演着重要角色。 1. **JMenu组件**: `JMenu`组件用于创建...

    JAVA表格控件JTable常用操作详解.doc

    在Java Swing编程中,JTable是一个不可或缺的组件,用于展示二维数据并允许用户进行交互。它提供了丰富的功能,包括数据的显示、编辑以及对行和列的操作。以下是对JTable常用操作的详细说明: **一、创建表格控件**...

    Jtable 中放入多个按钮

    在Java Swing库中,`JTable`是一个非常重要的组件,用于展示二维数据表格。当我们需要在`JTable`中实现更复杂的交互,比如在一个单元格内放置多个按钮时,这通常涉及到自定义`TableCellRenderer`和`TableCellEditor`...

    Java Swing的基本用法

    Java Swing是Java GUI(图形...综上所述,Java Swing的基本用法涵盖了组件的使用、布局管理、事件处理等多个方面,是构建Java桌面应用不可或缺的技能。通过学习和实践,开发者能够创建出功能丰富、用户友好的图形界面。

    java中JTable的应用】.pdf

    总结以上内容,JTable作为Swing库中的一个组件,在Java桌面应用开发中扮演着重要的角色。通过JDBC与数据库交互,Swing提供的GUI组件和事件处理机制,开发者可以设计出功能丰富且用户友好的应用程序界面。在具体使用...

    Swing之JTable详解

    在Swing框架中,`JTable`是构建GUI应用程序中表格的主要组件。它继承自`JComponent`类,这使得`JTable`能够支持丰富的图形用户界面功能。下面展示了`JTable`的类层次结构: 1. `java.lang.Object` - `java.awt....

    Java中JTable的用法

    ### Java中JTable的用法 ...综上所述,JTable作为Swing框架中的核心组件之一,在Java桌面应用程序中扮演着重要角色。通过对上述各项特性的了解与应用,开发者可以轻松构建出既美观又实用的表格界面。

    Swing之JTable的详细介绍

    Swing中的JTable组件是Java GUI开发中用于展示表格数据的重要工具,它是Swing库中的一个核心组件。JTable能够方便地创建和管理表格数据,同时也支持用户交互,如编辑单元格、排序、选择行等操作。下面我们将深入探讨...

    JAVA swing中文离线API文档

    Java Swing是Java标准库中的一个组件集合,用于构建桌面应用程序用户界面。它是Java Foundation Classes (JFC)的一部分,提供了一套轻量级的GUI(图形用户界面)组件,支持丰富的交互功能。本离线API文档详细阐述了...

Global site tag (gtag.js) - Google Analytics