JTable高手:为什么我实现了getColumnClass()后就不能增加一行了呢? 异常是ClassCastException,好找,但是好像你给的代码没法子找。 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 错误原因我也知道,但我在getColumnClass()中打印调试信息时,发现第一列调用了两次,第三列却始终没有调用。我的TableModel是:Boolean,String,ComboBox,String。。 你的这个tablemodel怎么实现的?我猜想你的意思是想用一个ComboBox实现数据的显示是吧,不是简单的把一列强制的cast为Combox,而是使用实现了TableCellEditor和TableCellRenderer interface的类,然后用TableColumn的 setCellEditor( editor); setCellRenderer( render); 我没有实现TableCellRenderer ,但在tableModel使用了TableColumn.setCellEditor(new DefaultCellEditor(combox)).之后在MyTableModel.getColumnClass(int col)时System.out.println(col+" "+class.getName());就发现col有两个0,而没有2大侠请帮忙解决一下,不胜感激! TableColumn.setCellEditor(new DefaultCellEditor(combox))做什么用啊?一般都是只setCellRenderer( render)的多,楼主的用法确实奇特。偶也是大菜鸟,凭空想象你的错误真的很困难,能不能把你的代码多贴点出来,大家一起研究研究。 JComboBox combox = new JComboBox(); combox.addItem("男"); combox.addItem("女"); comboCol.setCellEditor(new DefaultCellEditor(combox)); 楼主真是有趣啊,给的代码真少.我猜可能是ComboBox处于编辑状态时,Renderer无法识别,建议你在新加行时stopedit. 楼主还真敢用啊getColumnClass()返回的是该列数据类型的类,ComboBox你也敢用,你那个应该使用TableCellEditor来实现,而且要用JComboBox,竟然敢在swing里添加awt的东西,活腻了 getColumnClass()如果你性别用Boolean类型存储的这里要返回Boolean要是String这里就是StringJComboBox combox = new JComboBox(); combox.addItem("男"); combox.addItem("女");jtable.getColumnModel().getColumn(2).setCellEditor(combox);至于绘制器,String就不用管了,Boolean要自己转一下,可以在TableModel的getValueAt()里做。 其实好象一般不用重写getColumnClass()方法。。 好象假如JComboBox里面没有内容就会激发这个错误,我也遇到过! relive(六道轮回,无想转生)我正是使用你一样的方法,上面我贴的是自定义的一个方法。Swing里用awt为什么不可以?而且我并没有使用awt啊,是Jcombobox! getColumnClass(int col);是TableModel接口的方法,你要自定一个拜托换个名字先getColumnClass(int col)的主要作用是在getValueAt()得到一个Object后用这个Class来造型,假如你返回是个String("male"),那(JComboBox)"male"当然会出类造型错了实现接口前最好看看接口方法的说明,否则谁也救不了你 hehe ,这个问题还没有解决啊。 埃!看来大家是都不知道了。我 getColumnClass(int col)是系统的方法啊,从AbstractTableModel继承过来的。 我看啦,多半你的getColumnClass(int col)需要重载.[email protected],把代码发给我或者贴出来吧. 高手给我看看是哪配置错了????? applet 布局问题 循环打印空心菱形,三个循环。 JTable的输入问题 如何把Object型转成ArrayList 关于Swing的绘图(新手问题,必给分!) 为什么不能退出?? 过生日喽,散分了,来者有份! 如何在sql server2000中创建数据库? Java基础构造方法 又来送分了! SQL Server 2000 Driver for JDBC + JDBC3.0可以吗
我的TableModel是:
Boolean,String,ComboBox,String。。
setCellEditor( editor);
setCellRenderer( render);
一般都是只setCellRenderer( render)的多,楼主的用法确实奇特。
偶也是大菜鸟,凭空想象你的错误真的很困难,能不能把你的代码多贴点出来,大家一起研究研究。
combox.addItem("男");
combox.addItem("女");
comboCol.setCellEditor(new DefaultCellEditor(combox));
getColumnClass()返回的是该列数据类型的类,ComboBox你也敢用,你那个应该使用TableCellEditor来实现,而且要用JComboBox,竟然敢在swing里添加awt的东西,活腻了
要是String这里就是StringJComboBox combox = new JComboBox();
combox.addItem("男");
combox.addItem("女");jtable.getColumnModel().getColumn(2).setCellEditor(combox);至于绘制器,String就不用管了,Boolean要自己转一下,可以在TableModel的getValueAt()里做。
我正是使用你一样的方法,上面我贴的是自定义的一个方法。
Swing里用awt为什么不可以?而且我并没有使用awt啊,是Jcombobox!
getColumnClass(int col)的主要作用是在getValueAt()得到一个Object后用这个Class来造型,假如你返回是个String("male"),那(JComboBox)"male"当然会出类造型错了实现接口前最好看看接口方法的说明,否则谁也救不了你
我 getColumnClass(int col)是系统的方法啊,从AbstractTableModel继承过来的。
[email protected],把代码发给我或者贴出来吧.