我已经使用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()
。