2014-02-24 224 views
0

我想用數據庫列(SQLite)填充JComboBox。Java - 用SQLite數據庫填充JCombobox

我的數據庫連接是通過一個名爲DatabaseConnection的類在安裝包中設置的。

這裏是如何看起來像

import java.sql.*; 

import javax.swing.JOptionPane; 

public class DatabaseConnection { 
Connection conn = null; 

public static Connection ConnectDB() { 

    try { 
     Class.forName("org.sqlite.JDBC"); 
     Connection conn = DriverManager.getConnection("jdbc:sqlite:database.db"); 
     JOptionPane.showMessageDialog(null, "Connection Established"); 
     conn.setAutoCommit(false); 
     return conn; 
    } catch (Exception e) { 
     JOptionPane.showMessageDialog(null, e); 
     return null; 
    } 
} 
} 

在我的JFrame類我創建了下面的方法,它根據一個YouTube教程應該工作

public void PopulateJCB() 
{ 
    String queryString = "SELECT DISTINCT [Account Name] FROM main ORDER BY [Account Name]"; 
    try 
    { 
     Connection statJCBaccountname = DatabaseConnection.ConnectDB(); 
     Statement stmt = statJCBaccountname.createStatement(); 
     ResultSet rsJCBaccountname = stmt.executeQuery(queryString); 

     while (rsJCBaccountname.next()) 
     { 
      comboAccountName.addItem(rsJCBaccountname.getString(1)); 
     } 

    catch (SQLException e) 
    { 
     e.printStackTrace(); 
    } 

} 

但它顯示下面的「comboAccountName錯誤.addItem(rsJCBaccountname.getString(1));」

Multiple markers at this line 
- Type safety: The method addItem(Object) belongs to the raw type JComboBox. References to generic type JComboBox<E> should be 
parameterized 
- comboAccountName cannot be resolved 

請幫忙!

+0

無關:請學習Java命名約定並嚴格遵守。 – kleopatra

回答

1

我真的不知道你期待什麼?

  • statJCBaccountname甚至不是在您所提供的代碼示例,但是編譯器是說,變量未定義
  • 沒有爲createStatementDatabaseConnection

您需要解決這些問題,該程序將編譯之前沒有這樣的方法。除非你瞭解作者,否則我建議不要使用YouTube教程。

看看JDBC Database Access瞭解更多詳情...

+0

對不起,做了一個更正。 statJCBaccountname是我的聲明的名稱。 – satnam

+0

'statJCBaccountname'但是它是什麼類型?它沒有定義,它從未被宣佈過? – MadProgrammer

+0

http://www.youtube.com/watch?v=wpbQ0DCFF0M - 這個視頻就是我看到的地方。他只寫stat我寫statJCBaccountname – satnam