JTable学习

 
所有实现的接口:

         ImageObserverMenuContainer,Serializable, EventListener, Accessible, CellEditorListener, ListSelectionListener,RowSorterListener, TableColumnModelListener, TableModelListener, Scrollable

 

公开类JTable

继承(extends JComponent

实现的具体接口(implementsTableModelListenerScrollableTableColumnModelListenerListSelectionListenerCellEditionListenerRowSorterListener

 

JTable用于显示并编辑二元表。JTable有许多功能让他能够按照用户的要求渲染编辑,但是提供的默认的表是非常容易建立的。例如,建一个1010列的表格。

TableModeldataModel = new AbstractTableModel() {

         public int getColumnCount() { return 10; }

         public int getRowCount() { return 10;}

         public Object getValueAt(int row, int col) { return newInteger(row*col); }

     };

     JTable table = new JTable(dataModel);

     JScrollPane scrollpane = new JScrollPane(table);


JTable的典型用法是将它加载到一个滑动窗口中。默认的JTable会自动调整他的宽度于是滑动窗口的横向滑动就没有用了。为了使滑动窗口的水平滑动起作用,可以调用 setAutoResizeMode(int)的方法,同时参数设置为AUTO_RESIZE_OFF值得一提的是如果想要建立一个标准的表格,也就是说想要将表格的头部也建立在其中,可以使用 getTableHeader() 方法。

 

为了使表格排序以及填充表格信息,可以使用RowtSorter。下面两种排序方法任选其一。

1.      直接设置RowSorter.例如,table.setRowSorter(new TableRowSorter(model))

2.      autoCreateRowSorter 属性值设为trueJTable就可以排序了,例如:setAutoCreateRowSorter(true)

当决定使用JTable时,首先考虑的就是放到表格的数据的结构。DefaultTableModel 的实现采用的是Vector对象来存放属性值。同样,使用从一个应用程序中复制数据信息到 DefaultTableModel的方法,同样起着通过TableModel接口将数据信息打包作用,因此数据可以顺利的放到表格中。这种应用是非常有效的,因为这些模型非常方面获取,而且这种表示方法非常适合数据。一条选择模型的黄金法则:当基类创建了子类就用AbstractTableModel;当子类不被允许则使用DefaultTableModel

JTable使用int类型的数据来唯一标识模型中展示行列数。JTable使用扁平的单元格以及getValueAt(int, int)方法来获取在创建表格时的表格模型中的数据。需要注意的是,表格行列的索引是取决于表格本身,而不是表格模型。

在默认情况下,统一表格使用不同模型是表格中数据位置不同,这一点并不会影响表格模型,因为当表格中列数发生改变时,JTable内部会自动维护列数,这一操作是发生在表格模型使用之前,所以并不会对表格本身造成影响。

 

因此,在使用表格模型时不用在意表格数据顺序,因为不同的表格模型会自动调序,所以不管是什么操作都是没用的。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值