JComboBoxのモデルとしてenumを使用する
Total: 12888, Today: 2, Yesterday: 2
Posted by aterai at
Last-modified:
Summary
JComboBoxのモデルとしてenumを使用します。
Screenshot

Advertisement
Source Code Examples
private static enum SortAlgorithms {
Isort("Insertion Sort"),
Selsort("Selection Sort"),
Shellsort("Shell Sort"),
Hsort("Heap Sort"),
Qsort("Quicksort"),
Qsort2("2-way Quicksort");
private final String description;
private SortAlgorithms(String description) {
this.description = description;
}
@Override public String toString() {
return description;
}
}
JComboBox<SortAlgorithms> algorithmsChoices =
new JComboBox<>(SortAlgorithms.values());
View in GitHub: Java, KotlinDescription
enum型でJComboBoxのモデルを作成しています。上記のコードでは、Enum#toString()メソッドをオーバーライドして、JComboBoxの表示はユーザーに分かりやすい名前になるようにしています。
コード中で、どのアイテムが選択されているかなどを調べる場合などは、例えば以下のようにして使用します。
switch ((SortAlgorithms) algorithmsChoices.getSelectedItem()) {
case Isort: isort(number); break;
case Selsort: ssort(number); break;
case Shellsort: shellsort(number); break;
case Hsort: heapsort(number); break;
case Qsort: qsort(0, number - 1); break;
case Qsort2: qsort2(0, number - 1); break;
}
- ソートアニメーション自体は
Sorting Algorithm Animations from Programming Pearlsのアプレットから基本部分をコピーしてSwingに移植SwingWorker(JDK 6以上)を使用したキャンセル機能を追加- 全画面の書き換えを止めて移動する円図形の領域のみウェイトを入れて再描画するように変更
Reference
Sorting Algorithm Animations from Programming Pearls- Lesson: Performing Custom Painting (The Java™ Tutorials > Creating a GUI With JFC/Swing)
- Enum定数を選択するJRadioButtonのButtonGroupやJComboBoxを作成する