当前位置:  技术问答>java相关

jTable的DefaultTableMode和AbstractTableModel之间的区别

    来源: 互联网  发布时间:2015-09-12

    本文导语:  能谈谈两者的异同吗??? 在一个APPLICATION里,我希望用一个jTable来显示不同的表,其列是不同的,请问在程序里怎么更换Model/??? | 用一个jTable来显示不同的表?不太明白你的意思。试试jTable....

能谈谈两者的异同吗???

在一个APPLICATION里,我希望用一个jTable来显示不同的表,其列是不同的,请问在程序里怎么更换Model/???

|
用一个jTable来显示不同的表?不太明白你的意思。试试jTable.setModel()行不行。

|
DefaultTableMode是继承了AbstractTableModel的,也就是说DefaultTableMode比AbstractTableModel多添加了一些基本的jTable模式,即设定了一些方法的默认结构,比如jTable行的可选设置,改动设置等……
至于你的需要,建议去这里看看有无你需要的例子:
http://www2.gol.com/users/tame/swing/examples/SwingExamples.html

|
AbstractTableModel非常简单,只是用来得到Table的一些属性和对一些事件进行处理,并不能设置它的属性和对Table添加数据。因为他继承自TableModel,所以可以用它来接受JTable的TableModel对象,主要是对那些在JTable构造函数里已经添加了数据的表,而不是用TableModel来添加数据的表。
DefaultTableMode是个比较复杂的TableMode,控制也复杂,可以构筑复杂的表格。
更换Model(DefaultTableMode或者其子类):
table.setModel(model);
更新UI:
table.upDateUI();

package javax.swing.table;

import java.io.Serializable;
import java.util.EventListener;
import javax.swing.event.*;

public abstract class AbstractTableModel
    implements TableModel, Serializable
{

    public AbstractTableModel()
    {
        listenerList = new EventListenerList();
    }

    public String getColumnName(int i)
    {
        String s = "";
        for(; i >= 0; i = i / 26 - 1)
            s = (char)((char)(i % 26) + 65) + s;

        return s;
    }

    public int findColumn(String s)
    {
        for(int i = 0; i = 0; i -= 2)
            if(aobj[i] == (javax.swing.event.TableModelListener.class))
                ((TableModelListener)aobj[i + 1]).tableChanged(tablemodelevent);

    }

    public EventListener[] getListeners(Class class1)
    {
        return listenerList.getListeners(class1);
    }

    public abstract Object getValueAt(int i, int j);

    public abstract int getColumnCount();

    public abstract int getRowCount();

    protected EventListenerList listenerList;
}

|
如果你要继承AbstractTableModel则要求写的代码很多,看看DefaultTableModel的代码就知道了,但是功能扩充强大,如果继承DefaultTableModel则省事很多,一般应用继承后者就够了。

|
如果你想对你的JTable加入些特殊的处理,那使用AbstractTableModel会更灵活,不过你要写更多的代码,如果你的Jtable中只有些Lable,TextField,ComboBox等那就用DefaultTableModel,它已经实现了这些组件的基本的处理方法。

    
 
 
 
本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • 如何将JTABLE的列之间的分隔去掉.
  • java命名空间javax.swing类jtable的类成员方法: jtable定义及介绍
  • JTable:如何在JTable中加入新的column和加入的row,如何在JTable中设置指定坐标上的值?
  • java命名空间javax.swing类jtable.accessiblejtable的类成员方法: jtable.accessiblejtable定义及介绍
  • 一个比较笨的问题:如何用两个Vector对象动态生成一个JTable?及从JTable里取得数据。
  • java命名空间javax.swing类jtable.accessiblejtable.accessiblejtablecell的类成员方法: jtable.accessiblejtable.accessiblejtablecell定义及介绍
  • 初始化jtable时,我只想生成一个只有表头,即列名,还没有数据行的jtable。该如何实现?
  • java命名空间javax.swing类jtable的类成员方法: selectionbackground定义及介绍
  • JTABLE的难题:我想在鼠标右键点击JTABLE时被点中的那一行被选中,如何实现?
  • java命名空间javax.swing类jtable的类成员方法: configureenclosingscrollpane定义及介绍
  • JTable里面点击cell下拉JTable
  • java命名空间javax.swing类jtable的类成员方法: setsurrendersfocusonkeystroke定义及介绍
  • 一个比较笨的问题:如何用两个Vector对象动态生成一个JTable?及从JTable里取得数据。 iis7站长之家
  • java命名空间javax.swing类jtable的类成员方法: getmodel定义及介绍
  • JTable的刷新问题!
  • java命名空间javax.swing类jtable的类成员方法: getrowcount定义及介绍
  • 怎样在JTable中得到和设置每个单元的值,给20分,大虾教我!
  • java命名空间javax.swing类jtable的类成员方法: getaccessiblecontext定义及介绍
  • 求救:如何在JTable中动态添加一行?
  • java命名空间javax.swing枚举jtable.printmode的类成员方法: normal定义及介绍
  • java中查询的数据库记录如何在JTable控件中显示?
  • java命名空间javax.swing类jtable的类成员方法: gettooltiptext定义及介绍
  • 如何得到JScrollPane中的JTable


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3