try / catch jdbc java不能将jpanel放在jframe中

时间:2014-12-06 07:15:33

标签: java mysql swing jpanel try-catch

当我执行try和Catch功能时,我无法在我的Jframe中添加JPanels我已经尝试在每次尝试或捕获时添加我的面板但是它不好请帮助我! PS。它仅在我在try函数

之前执行frame.add(new Product("lol"));时才有效
public static void main(String[] args) {
        Connection conn = null;
        Statement stmt = null;
        frame.setVisible(true);
        frame.setSize (new Dimension (704, 454));
        GridLayout layout = new GridLayout(3, 3, 41, 10);
        String shit = null;
        frame.setLayout (layout);

        try{
           //STEP 2: Register JDBC driver

           Class.forName("com.mysql.jdbc.Driver");

           //STEP 3: Open a connection
           System.out.println("Connecting to a selected database...");
           conn = DriverManager.getConnection(DB_URL, USER, PASS);
           System.out.println("Connected database successfully...");


           stmt= conn.createStatement();
           ResultSet rs;

           rs = stmt.executeQuery("select productName from product");
           rs.next();
           String name = rs.getString("productName");
           System.out.println(name);
           shit = name;

        }catch(SQLException se){
           //Handle errors for JDBC
           se.printStackTrace();
        }catch(Exception e){
           //Handle errors for Class.forName
           e.printStackTrace();
        }finally{
           //finally block used to close resources

           try{
              if(stmt!=null)
                 conn.close();
           }catch(SQLException se){
           }// do nothing
           try{
              if(conn!=null)
                 conn.close();
           }catch(SQLException se){
              se.printStackTrace();
           }//end finally try
        }//end try
        System.out.println("Goodbye!");


        frame.revalidate();
        frame.repaint();
        frame.add(new Product("lol"));


    }
}

产品类

public Product(String name){
        JLabel label1 = new JLabel(name);
        add(label1);
        setBorder(blackline);

    }

1 个答案:

答案 0 :(得分:1)

您需要在添加组件后致电repaint()revalidate(),以便更改此代码

frame.revalidate();
frame.repaint();
frame.add(new Product("lol"));

到这个

frame.add(new Product("lol"));
frame.revalidate();
frame.repaint();