有没有办法将String
类型强加到JLayeredPane
?以下是我正在使用的代码:
private static void build_tables() {
String sql="SELECT * FROM pos_tables WHERE pos_company_id='"
+global_variables.company_id
+"' AND shop_type='"
+global_variables.shop_type
+"'";
if(mysql_query.count_mysqls(variables.con.conn, sql)>0){
try {
ResultSet rs = mysql_query.execute_mysql(variables.con.conn, sql);
while (rs.next()) {
JLayeredPane JL = (JLayeredPane)rs.getObject("parent_floor");
tablesetup.addButton(rs.getString("table_name"),
Integer.parseInt(rs.getString("x")),
Integer.parseInt(rs.getString("y")), JL);
}
} catch (SQLException ex) {
Logger.getLogger(builder.class.getName()).log(Level.SEVERE, null, ex);
}
}
}
我收到以下错误:
Exception in thread "AWT-EventQueue-0" java.lang.ClassCastException: java.lang.String cannot be cast to javax.swing.JLayeredPane
答案 0 :(得分:1)
JLayeredPane JL = (JLayeredPane)rs.getObject("parent_floor");
数据库不包含JLayeredPane
个对象。它包含一个字符串。
你想做什么?你为什么使用JLayeredPane
?
只需使用JPanel
即可。然后,您可以使用从数据库查询返回的字符串创建JLabel
,然后将标签添加到面板。
类似的东西:
String text = rs.getObject("parent_floor").toString();
JLabel label = new JLabel( text );
panel.add(label);