2009-03-03 120 views
4

我正在嘗試模仿HTML Select標籤。我想顯示文本作爲選項,但選中時,我會使用它的值。有沒有辦法讓JComboBox像HTML選擇一樣行事?

例如,我會列出國家名稱。但是,當用戶選擇日本時,我想獲取該國家的區域碼。所以用戶看到他們選擇了日本,但是我的代碼會得到「ja_JP」或其他東西。

我試圖避免將國家名稱和區域代碼存儲在HashMap或其他東西。

回答

8

創建一個包含顯示名稱和國家代碼的國家對象。你可以做到快速和骯髒,並重寫toString來顯示顯示名稱,然後只需在用戶選擇某些內容時檢索代碼。

public class Country 
{ 
    String display; 
    String code; 

    @Override 
    public String toString() 
    { 
     return display; 
    } 

    public String getCode() 
    { 
     return code; 
    } 
} 

遺漏了構造函數,因爲我很懶。如果您對重寫toString不滿意,您還可以創建自己的渲染器來處理Country對象,並通過新的getter來使用顯示器。

1

編輯:我需要輸入更快。

我通常會創建一個自定義對象來保存「值」並重寫toString()來返回JComboBox應顯示的內容。或者,您可以編寫自己的單元格渲染器。

+1

沒有人輸我! :) – willcodejavaforfood 2009-04-09 16:20:23

相關問題