`
huangfeiNetJava
  • 浏览: 39614 次
  • 性别: Icon_minigender_1
  • 来自: 长沙
社区版块
存档分类
最新评论

JTable略解

 
阅读更多

 

javax.swing
类 JTable

java.lang.Object
  java.awt.Component
      java.awt.Container
          javax.swing.JComponent
              javax.swing.JTable

     常用构造方法:

 

JTable()
          构造一个默认的 JTable,使用默认的数据模型、默认的列模型和默认的选择模型对其进行初始化。
JTable(int numRows, int numColumns)
          使用 DefaultTableModel 构造具有 numRows 行和 numColumns 列个空单元格的 JTable

JTable(TableModel dm)
          构造一个 JTable,使用数据模型 dm、默认的列模型和默认的选择模型对其进行初始化。

 

我觉得最后一种构造方法最好,原因其实很简单,就因为这个构造方法可以让自己定义的JTable类对象有更多的功能

 

关于TableModel:

 

 void addTableModelListener(TableModelListener l)
          每当数据模型发生更改时,就将一个侦听器添加到被通知的列表中。
 Class<?> getColumnClass(int columnIndex)
          针对列中所有的单元格值,返回最具体的超类。
 int getColumnCount()
          返回该模型中的列数。
 String getColumnName(int columnIndex)
          返回 columnIndex 位置的列的名称。
 int getRowCount()
          返回该模型中的行数。
 Object getValueAt(int rowIndex, int columnIndex)
          返回 columnIndexrowIndex 位置的单元格值。
 boolean isCellEditable(int rowIndex, int columnIndex)
          如果 rowIndexcolumnIndex 位置的单元格是可编辑的,则返回 true。
 void removeTableModelListener(TableModelListener l)
          每当数据模型发生更改时,就从被通知的列表中移除一个侦听器。
 void setValueAt(Object aValue, int rowIndex, int columnIndex)
          将 columnIndexrowIndex 位置的单元格中的值设置为 aValue

TableModel是一个接口,所以要使用它的话得全部实现其方法。

我们更常用的是TableModel的一个实现类AbstractTableModel,需要的方法只需从写即可。

 

如果table太大的话,我们可以把JTable对象放在一个JScrollPane里。

 

JTable的getColumnName方法可以设置表头信息,但有一个有趣的现象:表头信息在将JTable对象放在JScrollPane里才能显示(当然该有其他的方法让表头信息显示,但会复杂)。如果不做处理的话,表头信息是看不到的。

 

在做服务端的时候,我们需要一个表格(JTable)来将客户端信息表示出来,但是,要实现“一个客户端上线,表格增加一条记录”的功能,那么可以用这样的方法:

     在TableModel里定义一个int row记录行数。

     然后定义一个方法addRow()用来增加一行。

 但之中有几点要注意的:
   1.用JTable显示客户端信息的时候,要用一个队列保存所有客户端的信息,然后再setValueAt方法里用

public Object getValueAt(int rowIndex, int columnIndex) {
		// 第几行,就是列表中的第几个UserInfo对象
		if (ChatTools.userInfoList.size() == 0) {
			return null;
		}
		if (rowIndex < ChatTools.userInfoList.size()) {
			UserInfo user = ChatTools.userInfoList.get(rowIndex);
			if (columnIndex == 0) {
				return user.getName();

			}
			if (columnIndex == 1) {
				return user.getPwd();
			} else {
				return "出错!";
			}
		}
		return null;
	}

 

这样就可以将所有客户端的信息显示到表格上。

 

   也许,有一个细节我们会忘记,那就是刷新表格,我尝试了很多种方法,最后管用的只有updateUI()方法,推荐使用。

 

  当然还可以给表格添加监听,这就不扯了,又到事件监听方面了。

分享到:
评论

相关推荐

    JTable使用 JTable使用

    JTable使用 JTable使用JTable使用JTable使用

    JTable

    JTable的显示效果

    jTree和jTable 双向联动

    实现jTable和jTree的双向联动,点击jTree会选中jTable单元格,点击jTable会选中jTree节点。

    JTable的使用收藏

    JTable的使用收藏 1.JTable与TableModel 1.TableModel与JTable的关系 2.TableModel实践 3.使用JTable+TableModel展示java中的数据对象 2.JTable展示方式的美化 1.设置表格的宽度和高度 2.要显示表头 3.新加列,将...

    JTable动态刷新数据

    JTable动态刷新数据JTable动态刷新数据JTable动态刷新数据JTable动态刷新数据

    Swing JTable 常用属性

    Swing JTable 常用属性Swing JTable 常用属性Swing JTable 常用属性Swing JTable 常用属性Swing JTable 常用属性

    swing Jtable使用checkbox

    swing Jtable使用checkboxswing Jtable使用checkboxswing Jtable使用checkboxswing Jtable使用checkboxswing Jtable使用checkboxswing Jtable使用checkboxswing Jtable使用checkboxswing Jtable使用checkboxswing ...

    支持ResultSet的JTable

    ResultSet直接在JTable显示

    mvc+Jquery-jTable

    mvc下使用jtable插件

    Jtable 中放入多个按钮

    JTable 在一个单元格放入多个按钮,

    JTable多种实用示例

    Excel导入JTable JTable导出Excel JTable删除行 JTable显示实体数据 JTable的Vector添加实体,支持直接增加实体至JTable中,删除行时允许多种可能性(单选 连续多选 任意多选)。

    Java JTree+JTable应用

    java JTree+JTable使用样例,实现将JTree的节点内容显示到JTable中,eclipse导入maven项目 maven编译: mvn clean package

    JTable自动换行

    JTable的自动换行。挺好用的。里面还可以设置字体大小。分享一下。

    Jtable导出到excel

    JTable 和 Excel 图表是常被用在网格或表格中显示数据。通常,用户希望输入到 JTable 的数据已经存在于 Excel 电子表格中。Excel 格式使用在非 Excel 软件中来实现导入-导出功能。因为如此,Java 软件也应该提供通用...

    Swing之JTable的详细介绍

    Swing之JTable的详细介绍,讲述jtable的操作和excle表之间的转换

    JTable添加CheckBox

    一个JTable里添加CheckBox的完整例子,包括表头的JCheckBox全选联动

    jtable详解

    java swing jtable详解 world文档形式

    jtable使用方法介绍

    jtable使用方法介绍,很专业,内容详细,蛮有用。

    JTABLE帮助文档.CHM

    JTABLE帮助文档.CHM

    jTABLE直接创建表格

    利用Jtable类直接创建表格

Global site tag (gtag.js) - Google Analytics