-1

有没有办法将类型转换StringJLayeredPane?以下是我正在使用的代码:

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

我收到以下错误:

线程“AWT-EventQueue-0”java.lang.ClassCastException 中的异常:
java.lang.String 不能转换为 javax.swing.JLayeredPane
4

1 回答 1

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);
于 2011-03-19T02:47:36.920 回答