自己扩展一个CellRenderer,如:VCellRenderer extends DefaultTableCellRenderer,然后覆盖里面的方法 getTableCellRendererComponent,里面直接返回你的CellRenderer,不要判断isSelected,这样就可以了
解决方案 »
- iText pdf 如何提取对象 u3d对象
- 问一个在jsp页面里引入java文件的路径问题
- structs2 找不到action的问题 纠结了四天 快要崩溃了 大侠们帮帮忙
- 搜索引擎搜索词的传递和转码的问题
- struts2 spring2.5整合后的验证问题
- 有没人用过最新版本的kaffe-1.1.6
- 谁能帮我写一个有Java特色的java窗体(给15分)
- JTable,高手进来看看~~~
- 使用xpath的问题?
- 如何搭建一个用JBOSS做AS的平台来部署EJB?
- struts给我们带来了什么?是让我们的工作更简单了还是更复杂了?大家都来讨论
- 请问如何将表单中txet文本,下拉框数据,以及“上传文件”一起提交到后台。(利用Struts 和 ActionForm实现)
不行诶,我把这个方法(getTableCellRendererComponent)进行重载,结果是没有任何反应。感觉不再这个方法里面诶。
不可能不出效果
看看你的CellRenderer(comboBox)实例化了没有!!
public void setComboBoxEditor(JTable table, TableColumn columnClass,
) {
JComboBox comboBox = new JComboBox();
comboBox.setEditable(true);
columnClass.setCellEditor(new DefaultCellEditor(comboBox));
DefaultTableCellRenderer renderer = new DefaultTableCellRenderer(){
//重载方法getTableCellRendererComponent()
};
renderer.setToolTipText("Click for combo box");
columnClass.setCellRenderer(renderer); }
请问这样有问题吗?
谢谢
super(SwingConstants.HORIZONTAL);
// set a starting size...some 1.2/1.3 systems need this
setSize(115,15);
} public Component getTableCellRendererComponent(JTable table, Object value,
boolean isSelected,
boolean hasFocus,
int row,int column) { if (value == null) {
return this;
}
if (value instanceof Volume) {
setValue(((Volume)value).getVolume());
}
else {
setValue(0);
}
return this;
}
}这个例子的渲染器是一个JSlider,其原理和你想要的JComboBox是一样的。你要注意上面的getTableCellRendererComponent方法中没有对isSelected和hasFocus做出判断,是直接返回了Component.
可以这么使用:JTable jt = new JTable();
jt.setDefaultRenderer(Volume.class, new VolumeRenderer());