当前位置: 技术问答>java相关
JTable:如何在JTable中加入新的column和加入的row,如何在JTable中设置指定坐标上的值?
来源: 互联网 发布时间:2015-05-03
本文导语: 如何在JTable中加入新的column和加入的row 如何在JTable中设置指定坐标上的值? 如何得到JTable中当前选中的项. 如何使JTable中的数据按某栏排序. 如何使JTable中的栏线显示出来. | 如果能看一下Default...
如何在JTable中加入新的column和加入的row
如何在JTable中设置指定坐标上的值?
如何得到JTable中当前选中的项.
如何使JTable中的数据按某栏排序.
如何使JTable中的栏线显示出来.
如何在JTable中设置指定坐标上的值?
如何得到JTable中当前选中的项.
如何使JTable中的数据按某栏排序.
如何使JTable中的栏线显示出来.
|
如果能看一下DefaultTableModel就什么都明白了。
table.getModel().addRow();
如果想要(3,4)不可编辑就这样:
DefaultTableModel model = new DefaultTableModel(10,6){
public boolean isCellEditable(int row,int column){
return row==3&&column==4;
}
};
JTable table = new JTable(model);
加表头,JFrame frame=new JFrame();
frame.getContentPane().add(table.getTableHeader(),BoderLayout.NORTH);
frame.getContentPane().add(table)就可以了。
或把table加到JScrollPane中。
table.getModel().addRow();
如果想要(3,4)不可编辑就这样:
DefaultTableModel model = new DefaultTableModel(10,6){
public boolean isCellEditable(int row,int column){
return row==3&&column==4;
}
};
JTable table = new JTable(model);
加表头,JFrame frame=new JFrame();
frame.getContentPane().add(table.getTableHeader(),BoderLayout.NORTH);
frame.getContentPane().add(table)就可以了。
或把table加到JScrollPane中。
|
addRow方法需要传一个Object数组或是一个Vector对象作参数,里面依次是该行各个列上的对象,我想编译不过去可能是因为你传的参数不对。
不能编辑的方法同意楼上的,不过对那些不能编辑的格应该是返回false。
加表头的话你可以类似这样建表:
DefaultTableModel model = new DefaultTableModel(new Object[]{"表头1","表头2",...}, rowCount);
JTable table = new JTable(model);
以后每加一列时用model.addColumn("表头n");
不能编辑的方法同意楼上的,不过对那些不能编辑的格应该是返回false。
加表头的话你可以类似这样建表:
DefaultTableModel model = new DefaultTableModel(new Object[]{"表头1","表头2",...}, rowCount);
JTable table = new JTable(model);
以后每加一列时用model.addColumn("表头n");
|
加入新的行:((DefaultTableModel)JTable.getModel()).addRow(...)
加入新的列:((DefaultTableModel)JTable.getModel()).addColumn(...)
设置指定坐标的值:JTable.setValueAt(...)
当前选中的行:JTable.getSelectedRow()
.........列:JTable.getSelectedColumn()
按某栏排序没用过,好像SwingSet2的Demo里面有,建议看SwingSet2中JTable部分的源码
栏线?你是指table grid的边界线吗?我记得缺省都是显示出来的啊。试试JTable.setShowGrid(true)
加入新的列:((DefaultTableModel)JTable.getModel()).addColumn(...)
设置指定坐标的值:JTable.setValueAt(...)
当前选中的行:JTable.getSelectedRow()
.........列:JTable.getSelectedColumn()
按某栏排序没用过,好像SwingSet2的Demo里面有,建议看SwingSet2中JTable部分的源码
栏线?你是指table grid的边界线吗?我记得缺省都是显示出来的啊。试试JTable.setShowGrid(true)
|
你是怎么建表的,使用了二维数组呢还是表模型?
使用二维数组的话,你可以重构二维数组对象来增加行或列,如果用的是表模型,以上的方法是可行的,import javax.swing.table.*;别忘了。
得到JTable中当前选中的项:
if(jTable.getSelectedRow()!=-1&&jTable.getSelectedColumn()!=-1)
jTable.getValueAt(jTable.getSelectedRow(),jTable.getSelectedColumn());
使用二维数组的话,你可以重构二维数组对象来增加行或列,如果用的是表模型,以上的方法是可行的,import javax.swing.table.*;别忘了。
得到JTable中当前选中的项:
if(jTable.getSelectedRow()!=-1&&jTable.getSelectedColumn()!=-1)
jTable.getValueAt(jTable.getSelectedRow(),jTable.getSelectedColumn());