如何修复线程“ AWT-EventQueue-0”中的异常java.lang.ClassCastException:无法将类javax.swing.JLabel强制转换为类java.lang.String

时间:2018-12-20 12:38:20

标签: java

我已经使用TableCellRenderer在JTable的每个单元格中放置一个JLabel,但是当我想获取所选单元格的值并在查询中出现此问题时,将显示问题。

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();
    }
}

1 个答案:

答案 0 :(得分:0)

由于尝试将JLabel强制转换为String而获得异常。

  

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()