私がやろうとしていることは、HTMLSelectタグを模倣しています。オプションとしてテキストを表示したいのですが、選択するとその値を使用します。
たとえば、国名のリストがあります。ただし、ユーザーが日本を選択したときに、その国のロケールコードを取得したいと思います。したがって、ユーザーには日本を選択したことがわかりますが、私のコードには「ja_JP」などが表示されます。
国名とロケールコードをHashMapなどに保存しないようにしています。
表示名と国コードを含む Country オブジェクトを作成します。クイック アンド ダーティを実行し、toString をオーバーライドして表示名を表示し、ユーザーが何かを選択したときに必要なときにコードを取得することができます。
public class Country
{
String display;
String code;
@Override
public String toString()
{
return display;
}
public String getCode()
{
return code;
}
}
私は怠け者なので、コンストラクターを省略しました。toString のオーバーライドに満足できない場合は、Country オブジェクトを処理する独自のレンダラーを作成し、代わりに新しい getter を介して表示を使用することもできます。
編集: より速く入力する必要があります。
私は通常、「値」を保持するカスタム オブジェクトを作成し、toString() をオーバーライドして JComboBox が表示する内容を返します。または、独自のセル レンダラーを作成することもできます。