2010-11-21 55 views
0

我在netbeans(它當前僅包含一個JLabel)中創建了一個JFrame,它連接到數據庫並獲取一個字段並將其顯示在JLabel中。 當我運行程序時,JLabel顯示的字段少於一秒,然後JLabel中的文本消失!誰能告訴我爲什麼會發生這種情況? 我也試過它在JTextField中,也是同樣的問題。JLabel文本在不到一秒鐘後消失

代碼:

public class frame extends javax.swing.JFrame { 

    public frame() { 
     initComponents(); 
    } 

public void doingAll() { 

     StringBuffer message = new StringBuffer(); 
    try { 
     Statement stmt; 
     Class.forName("com.mysql.jdbc.Driver"); 
     String url ="jdbc:mysql://localhost:3306/Junk2"; 
     Connection con = DriverManager.getConnection(url,"root", ""); 
     System.out.println("URL: " + url); 
     System.out.println("Connection: " + con); 
     stmt = con.createStatement(); 

     stmt.executeQuery("select * from Junk2.example"); 
     ResultSet rs = stmt.executeQuery("select * from Junk2.example"); 
     int columns = rs.getMetaData().getColumnCount(); 
     while(rs.next()){ 
     for (int i=1;i<=columns;i++){ 
     message.append(rs.getString(i)+" "); 
     } 
     message.append("\n"); 
     } 
     System.out.println(message); 

     con.close(); 
     }catch(Exception e) { 
     e.printStackTrace(); 
     }//end catch 
     jLabel1.setText(message.toString()); 
     jTextField1.setText(message.toString()); 


     java.awt.EventQueue.invokeLater(new Runnable(){public void run(){new frame().setVisible(true);}}); 

    } 

    // Variables declaration - do not modify 
    private javax.swing.JLabel jLabel1; 
    private javax.swing.JTextField jTextField1; 
    // End of variables declaration 

} 

回答

2

我猜測別的地方在你的代碼,你正在清理現場。

搜索通過您的地方

  • 你做的setText( 「」)的地方的代碼;
  • 從屏幕
  • 取下標籤上繪製標籤
  • 頂部另一個組件已經實現了自己的畫法。

此外,您可以在此發佈代碼。你的問題很模糊,給出明確的答案。

編輯:下面的代碼顯示

你doingAll方法不是靜態的,這意味着你將不得不創建一個框架對象調用它。然後,在該方法結束時,您正在創建一個代碼爲

java.awt.EventQueue.invokeLater(new Runnable(){public void run(){new frame().setVisible(true);}}); 

這沒有意義。這裏還有更多,因爲這不是所有的代碼,但我想上面的代碼行是一些(如果不是全部的話)問題的出發點。

+0

這是我使用的代碼,函數doingAll()連接到數據庫,檢索該字段並將其顯示在JLabel和JTextField中。但正如我所說,文本只顯示少於2秒。 – SLA 2010-11-21 10:22:41

+0

這條線實際上在我第一次創建netbeans項目時已經存在,我剛剛刪除它,並且問題得到解決!謝謝! – SLA 2010-11-21 10:33:16

相關問題