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