如何修复线程"AWT-EventQueue-0" java.lang.ClassCastException中的异常:类javax.swing.JLabel不能转换为类java.lang.String



我已经使用TableCellRenderer将JTable的每个单元格放入JLabel,但是当我想获取所选单元格的值并放入查询时,就会显示此问题。怎么办。

at row=0 cloumn=0 是一个 JLabel,我想获取 JLabel 的值并放入查询

Display((

String) table.getValueAt(0, 0));

private void Display(String selectrow) {    
     try{
            Class.forName("oracle.jdbc.driver.OracleDriver");
               Connection con = DriverManager.getConnection("jdbc:oracle:thin:@localhost:1521:fiekdb","sys as sysdba","Albaniti111");
               String s="Select IdMenu,Ushqimi_pija,Qmimi,Lloji from Menu where IdMenu='"+selectrow+"'";
               PreparedStatement ps = con.prepareStatement(s);
               ResultSet rs=ps.executeQuery();
                while(rs.next())
                {
                    int vlera4=rs.getInt("IdMenu");
                   String vlera=rs.getString("IdMenu");
                   String vlera1=rs.getString("Ushqimi_pija");
                   String vlera2=rs.getString("Qmimi");
                   String vlera3=rs.getString("Lloji");                    
                    obj[0]=vlera;
                    obj[1]=vlera1;
                    obj[2]=vlera2;
                    obj[3]=vlera3;
                    Select1(Select(vlera4));                    
                }
    } catch(Exception ex){
         ex.printStackTrace();
    }
}

您收到异常是因为您尝试将JLabel转换为String

at row=0 cloumn=0 是一个 JLabel,我想获取 JLabel 的值并放入查询

Display((String) table.getValueAt(0, 0));

如果你想要标签的文本内容,请改用 JLabel.getText():

JLabel label = (JLabel)table.getValueAt(0, 0);
String text = label.getText();
Display(text);

旁注:根据 Java 的通常编码约定,方法名称应以小写字母开头,因此Display()应重命名为 display()