2011-12-12 58 views
0

好吧,假設我有一個包含兩列的數據庫表 - 一個是「Name」,另一個是「Age」,並且表中有40多個名稱及其各自的年齡。我希望這些名字在jList/jComboBox中列出,並且我希望能夠在jList/jComboBox中單擊一個名稱,並將其各自的年齡顯示在 - 例如 - 文本框中。我是否必須通過編寫一個代碼來選擇表中的所有名稱,然後填充jList/jComboBox,然後選擇另一個接受選定名稱的代碼,將它放入sql語句中,找到匹配的年齡併發送它到一個文本框,或者是否有某種VB-esque列到組合框/列表綁定,我可以利用這個去?將數據庫列綁定到java jComboBox和JList

回答

0

對於只有40個名稱年齡組合,我只需查詢數據庫一次,並將此信息存儲在Map中。然後,您可以在選擇名稱時查詢地圖,並更新年齡文本框。這會比每次選擇更改時運行SQL查詢快得多。

+0

好的,如果你有類似300名或類似的東西呢? –

0

您必須爲您的swing元素設置Model,並根據一個位置的更改將數據更新到其他實現Listener。 看看這個 Binding comboboxes in swing

0

創建一個自定義對象,它存儲名稱和年齡值並將此對象添加到組合框。然後,當你選擇一個項目你有權訪問這兩個值。

例如:How to use Map element as text of a JComboBox

+0

無法抗拒:爲視圖原因覆蓋toString是非常髒的,你應該_never_做它(因爲我們都知道:-)自定義渲染器是_the_的方式去 - 除了更好的替代使用SwingX,它支持可插拔字符串表示渲染器級別:-) – kleopatra

+0

@kleopatra,AFAIK您需要重寫模型中對象的toString()以便能夠通過鍵入項目字符串表示的第一個字符來選擇列表中的項目。 – camickr

+0

你錯過了這一點。重點不在於獲取數據並將其顯示在組合框或列表中;重點是獲取數據,將它們顯示在組合框或列表中,以便在單擊每個數據時,會在文本框中顯示相應或匹配的數據。組合框中的內容與文本框中顯示的內容之間必須有鏈接。 –