2014-10-19 47 views
-1

我有寫程序,該程序有2幀一幀添加項目並保存到數據庫 在另一幀我必須選擇在JComboBox第一幀中添加的項目我寫該代碼插入數據到數據庫中,但我不知道如何在JComboBox如何插入數據到JComboBox使用JTextField

try { 
    String host = "jdbc:derby://localhost:1527/PROCAT"; 
    String uName = "zain"; 
    String uPass = "zain"; 
    con = DriverManager.getConnection(host, uName, uPass); 
    String m = "insert into ITEMB (ITEM,ITEMNAME,PRISE) values(?,?,?)"; 
    ps = con.prepareStatement(m); 
    ps.setInt(1, Integer.parseInt(jTextField3.getText())); 
    ps.setString(2, jTextField2.getText()); 
    ps.setString(3, jTextField4.getText()); 
    ps.executeUpdate(); 
    JOptionPane.showMessageDialog(null, "record saved"); 
} catch (Exception ex) { 
    JOptionPane.showMessageDialog(null, ex); 
} 

這顯示JComboBox

try 
{ 

    String host = "jdbc:derby://localhost:1527/PROCAT"; 
    String uName = "zain"; 
    String uPass = "zain"; 
    con = DriverManager.getConnection(host,uName,uPass); 

    st = con.createStatement(); 
    rs = st.executeQuery("select ITEMNAME from ITEMB;"); 
    while (rs.next()) { 
     jCom.addItem(rs.getString("ITEMNAME")); 
    } 

} 
catch(Exception ex) { 
    JOptionPane.showMessageDialog(null,ex); 
} 
+0

我不知道,如果它的我,但我不明白你的問題。你的框架應該怎麼做,你卡在哪裏/程序不在你想要的地方做什麼? – msrd0 2014-10-19 12:09:10

+0

對不起親我的英語不是那麼好,但我試圖從數據庫中獲取數據並顯示在組合框中 – mohza 2014-10-19 12:18:16

+0

回答你的問題的人試圖清楚你的問題。如果他是正確的,你應該想到編輯信息到你的問題 – msrd0 2014-10-19 12:24:04

回答

0

在我的理解中,有2幀。其中一個用於查看記錄並具有JComboBox,另一個用於插入記錄並具有JTextField

默認框架將是JComboBox。如果您想在JComboBox中添加新記錄,則會出現一個框架用於添加記錄。

一旦發佈INSERT語句,帶有JTextField的幀將被關閉,帶有JComboBox的幀將出現,顯示新添加的記錄。

您可以提供一個重新加載按鈕,用於刪除JComboBox中的項目,然後使用SELECT聲明重新加載數據。

while (rs.next()) { 
    jComboBox.addItem(rs.getString("ITEMNAME")); 
} 

然後,用

jComboBox.repaint(); 
+0

正是我想要做的,我沒有得到如何使用repaint() – mohza 2014-10-19 12:24:13

+0

也許使用jComboBox.updateUI() – 2014-10-19 12:28:57

+0

@marionjeff'updateUI'無事可做使組件失效或重新繪製,這些都是副作用,'updateUI'與重新應用外觀委託相關,這不是一個快速的過程,應該避免,除非你以某種重要的方式改變外觀和感覺。 – MadProgrammer 2014-10-19 23:56:03