怎样在JTable中隐藏一列 我想在表中隐藏一列数据,不是Remove掉,因为这列数据我还想用就是不想在界面上看到那位高手指点一下 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 你不将它SELECT出来不就行了吗? 你不将它SELECT出来不就行了吗? //隐藏第一列TableColumn column = table.getColumnModel().getColumn(0);table.getColumnModel().removeColumn(column); 一般来说真正用来存储操作数据的object是自己定义的,只有在显示出来的时候才调用jtable的setModel把数据放进去。那么在你将数据放入dataModel的时候,不要把这一列放进去就行了,你的dataModel在定义的时候就应该少一列 前阵子也做过类似楼主的jtabel按楼主说的,用模型可以实现,关键是你如何封装表的数据EntityTableColumn column;column = new EntityTableColumn("状态",new String().getClass(),38,new XTableCellRendere());column.setLocked(true); //锁定标志列column.setEditable(false); //标志列不可编辑column.setHeaderRenderer(new XTableHeadRenderer());addColumn(column); //第一列为标识列int width=0; //column宽度Class columnClass=null; //column类型TableCellEditor cellEditor = null; //编辑器TableCellRenderer cellRenderer = null; //绘制器Document doc = null; //模型for (int i = 0; i < _packTb.getFieldCount(); i++) { //每个字段为一列,并设置column的编辑器 的类型width = Integer.parseInt(xface.getColumnWidth());/* ???设置控件显示长度*/if (width == 0) width = 55;else width *= 4;columnClass = _packTb.getTypeClass(i);if (_packTb.getFaceCode(i).equals("defaultComboBox")){ //下拉框 XButton.XComboBox combo = (XButton.XComboBox)XFace.getComboBoxCellEditor(_packTb.getTb().getView(),i); XTextFieldCellRenderer text = new XTextFieldCellRenderer(null,"",18); cellEditor = combo; cellRenderer = text; _packTb.setComboBoxModel(i,combo.getModel()); column = new EntityTableColumn(_packTb.getName(i),columnClass,width,cellEditor,cellRenderer); }else{ cellEditor = new XTextFieldCellEditor(null,"",18,columnClass); doc = ((JTextField)cellEditor).getDocument(); _packTb.setEditorDocument(i,doc); cellRenderer = new XTextFieldCellRenderer(null,"",18); doc = ((JTextField)cellRenderer).getDocument(); _packTb.setRendererDocument(i,doc); column = new EntityTableColumn(_packTb.getName(i),columnClass,width,cellEditor,cellRenderer); } column.setHeaderRenderer(new XTableHeadRenderer()); /* column属性设置*/ column.setEditable(_packTb.isEditable(i)); //编辑 column.setHidden(_packTb.isHidden(i)); //隐藏 column.setLocked(_packTb.isLocked(i)); //锁定 column.setSortable(_packTb.isSortable(i)); //排序 addColumn(column); 在JTable的子类中加一个hideColumn()方法 public void hideColumn(int index) { TableColumn tc = this.getColumnModel().getColumn(index); tc.setMaxWidth(0); tc.setPreferredWidth(0); tc.setWidth(0); tc.setMinWidth(0); this.getTableHeader().getColumnModel().getColumn(index).setMaxWidth(0); this.getTableHeader().getColumnModel().getColumn(index).setMinWidth(0); } hideColumn(0)就是隐藏第一列 jmf中的medialocator 方向 请教回调的问题 为什么最简单的applet小程序在IE里运行没结果??? 关于jbulider7的问题!(给100分) 请问怎样为tree的不同叶子设计不同的图标?? 为什么我的问题最多只能给100分? 强烈要求建议学JAVA的菜鸟,中级手,高手把MSN联合起来! 紧急求助:请教在如何将一个文件夹上传到CVS上去 急 jstl怎么遍历list啊? 请问,如何用一个按纽来启动一个程序(一个applicaion) Java中有可以读取CPU的利用率的接口么?
TableColumn column = table.getColumnModel().getColumn(0);
table.getColumnModel().removeColumn(column);
按楼主说的,用模型可以实现,关键是你如何封装表的数据EntityTableColumn column;
column = new EntityTableColumn("状态",new String().getClass(),38,new XTableCellRendere());
column.setLocked(true); //锁定标志列
column.setEditable(false); //标志列不可编辑
column.setHeaderRenderer(new XTableHeadRenderer());
addColumn(column); //第一列为标识列
int width=0; //column宽度
Class columnClass=null; //column类型
TableCellEditor cellEditor = null; //编辑器
TableCellRenderer cellRenderer = null; //绘制器
Document doc = null; //模型
for (int i = 0; i < _packTb.getFieldCount(); i++) { //每个字段为一列,并设置column的编辑器 的类型
width = Integer.parseInt(xface.getColumnWidth());
/* ???设置控件显示长度*/
if (width == 0) width = 55;
else width *= 4;
columnClass = _packTb.getTypeClass(i);
if (_packTb.getFaceCode(i).equals("defaultComboBox")){ //下拉框
XButton.XComboBox combo = (XButton.XComboBox)XFace.getComboBoxCellEditor(_packTb.getTb().getView(),i);
XTextFieldCellRenderer text = new XTextFieldCellRenderer(null,"",18);
cellEditor = combo;
cellRenderer = text;
_packTb.setComboBoxModel(i,combo.getModel());
column = new EntityTableColumn(_packTb.getName(i),columnClass,width,cellEditor,cellRenderer);
}else{
cellEditor = new XTextFieldCellEditor(null,"",18,columnClass);
doc = ((JTextField)cellEditor).getDocument();
_packTb.setEditorDocument(i,doc);
cellRenderer = new XTextFieldCellRenderer(null,"",18);
doc = ((JTextField)cellRenderer).getDocument();
_packTb.setRendererDocument(i,doc);
column = new EntityTableColumn(_packTb.getName(i),columnClass,width,cellEditor,cellRenderer);
}
column.setHeaderRenderer(new XTableHeadRenderer());
/* column属性设置*/
column.setEditable(_packTb.isEditable(i)); //编辑
column.setHidden(_packTb.isHidden(i)); //隐藏
column.setLocked(_packTb.isLocked(i)); //锁定
column.setSortable(_packTb.isSortable(i)); //排序
addColumn(column);
public void hideColumn(int index)
{
TableColumn tc = this.getColumnModel().getColumn(index);
tc.setMaxWidth(0);
tc.setPreferredWidth(0);
tc.setWidth(0);
tc.setMinWidth(0);
this.getTableHeader().getColumnModel().getColumn(index).setMaxWidth(0);
this.getTableHeader().getColumnModel().getColumn(index).setMinWidth(0);
}
hideColumn(0)就是隐藏第一列