使用ClassCastException异常的JTable? [英] ClassCastException using JTable?

查看:752
本文介绍了使用ClassCastException异常的JTable?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

  renbor = tabla_proveedor.getSelectedRow();
DefaultTableModel方面莫德洛=(的DefaultTableModel)tabla_proveedor.getModel();
modelo.removeRow(renbor);

code的这条线给我一个错误,它给我...


  

在异常线程AWT-EventQueue的-0java.lang.ClassCastException:javax.swing.JTable中的$ 1不能转换为javax.swing.table.DefaultTableModel中的


我该如何解决呢?我需要从我的表中删除一行。

这是我实例tabla_proveedor

  tabla_proveedor =新的JTable(datos_proveedor,columna_proveedor)    {
        公共布尔的isCellEditable(INT datos_proveedor,诠释columna_proveedor){        返回false;
        }
        公共组件prepareRenderer(的TableCellRenderer R,INT datos_proveedor,诠释columna_proveedor)
        {
            组件C =超prepareRenderer(R,datos_proveedor,columna_proveedor)。            返回℃;
        }
        };


解决方案

  

javax.swing.JTable中的$ 1.什么我做什么?


在您指定的数据和列名作为数组JTable中创建为TableModel匿名内部类。在$ 1告诉你是这样的话。

创建JTable中一个简单的方法就是你,需要使用向量的构造。如果你必须使用数组,那么你需要手动创建的DefaultTableModel(由桑杰的建议):

 的DefaultTableModel模型=新的DefaultTableModel(数据为columnNames)
JTable的表=新的JTable(模型);


  

但是我用getColumnModel()getColumn(0).SET preferredWidth(200);


这已无关,与正在使用的TableModel的,所以是这个code将仍与DefaultTableModel方面的工作。

renbor = tabla_proveedor.getSelectedRow();
DefaultTableModel modelo = (DefaultTableModel) tabla_proveedor.getModel();
modelo.removeRow(renbor);

That line of code gives me an error, it gives me...

Exception in thread "AWT-EventQueue-0" java.lang.ClassCastException: javax.swing.JTable$1 cannot be cast to javax.swing.table.DefaultTableModel

How do I fix that? I need to remove a row from my table.

This is where I instantiate tabla_proveedor

tabla_proveedor=new JTable(datos_proveedor,columna_proveedor)

    { 
        public boolean isCellEditable(int datos_proveedor, int columna_proveedor){

        return false;
        }
        public Component prepareRenderer(TableCellRenderer r, int datos_proveedor, int columna_proveedor)
        {
            Component c= super.prepareRenderer(r,datos_proveedor,columna_proveedor);

            return c;
        }
        };

解决方案

javax.swing.JTable$1 what do I do with that?

When you specify the data and column names as arrays the JTable creates an anonymous inner class for the TableModel. The "$1" tells you this is the case.

An easier way to create the JTable is you use the constructor that takes Vectors. If you have to use the arrays, then you need to create the DefaultTableModel manually (as suggested by Sanjay):

DefaultTableModel model = new DefaultTableModel(data, columnNames)
JTable table = new JTable( model );

But I use getColumnModel().getColumn(0).setPreferredWidth(200);

This has nothing to do with the TableModel that is being used, so yes this code will still work with the DefaultTableModel.

这篇关于使用ClassCastException异常的JTable?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆