学生向けにプログラミングを解説。次>>複数の項目から値を選択するような場合には、「チェックボックス」や「ラジオボタン」の他に、リスト(JList)を使う方法があります。リストはjavax.swing.JListを用います。+--javax.swing.JListリストも、ツリーやテーブルのように具体的な構成は「モデル」を基にします。リストのモデルを自作する場合は、javax.swing.ListModelインターフェイスと、そのメソッドを実装したjavax.swing.DefaultListModelを利用すればよいです。リストは選択された項目もモデル化します。プログラム作成上はそれほど意識する必要はありませんが、javax.swing.ListSelectionModelインターフェイスと、そのメソッドを実装したjavax.swing.DefaultListSelectionModelがそれにあたります。初期設定では、javax.swing.DefaultListCellRendererを用いて、リスト項目の表示を行っています。表示できるのはオブジェクトで、アイコンまたは文字列です。以下はリストの生成例のひとつで、文字列をリストの項目として、JListを生成しています。文字列「1」〜「2」という内容の項目を持つリストを生成します。このときそれぞれの内容のインデックスは「0」から始まります。インデックスは「0」〜「9」となります。先に生成されたリストは、全ての項目を表示させますが、場合によっては全ての項目を適切に表示できない場合があります。このようなことを避けるため通常リストはスクロールペインへ配置します。//スクロールペインに配置スクロールペインに配置した場合、初期設定では8項目が表示され、それ以上の項目がスクロールで現れるようになります。表示項目を設定するにはsetVisibleRowCount()メソッドを使用します。listはJListで生成されたインスタンスとします。//5行表示(初期設定は8行)選択されたリスト項目の取得は、「インデックス」あるいは「内容」のいずれでも使えます。JListのインスタンスからこれらの取得を行う場合は、getSelectedIndices()メソッドでインデックスを取得、getSelectedValuesList()メソッドで内容を取得します。いずれも各返値の配列に昇順で項目が記憶されます。listはJListで生成されたインスタンスとします。listElement);}先に述べたように、項目の最初は[0]から始まりますので注意してください。1.7以前では、項目の内容の取得に「getSelectedValues()」が利用可能でした。置き換えられています。「getSelectedValuesList()」の戻り値はList型ですが、「getSelectedValues()」の戻り値はObject[]型なので以下のような書き方が出来ました。listElement[i]);}リスト内で選択範囲の変更があった場合の処理として、javax.swing.eventにあるListSelectionListenerインターフェイスを紹介します。ListSelectionEventでは以下のようなメソッドを使用できます。具体的には以下のように記述します。:この他に、リストに関連付けられたデータに変更が生じた場合の通知には、javax.swing.eventにあるListDataListenerインターフェイスと、ListDataEventを引数として持つ以下のメソッドを実装すればよいです。リスト内容が複雑な方法で変更された場合に呼び出される。リスト項目が削除された場合に呼び出される以下のサンプルプログラムを作成して、実行してみましょう。"Center");frame.pack();frame.setVisible(true);}}実行すると、item1からitem10までのリストが表示されます。以下のサンプルプログラムを作成して、実行してみましょう。}}では、サンプルプログラムを実行してみましょう。item1からitem10までのリストが表示されます。フレームの右側にスクロールバーが表示されます。以下のサンプルプログラムを作成して、実行してみましょう。}}では、サンプルプログラムを実行してみましょう。itemを選択して「print」ボタンを押すと、コマンドプロンプト上にアイテム名が表示されます。以下のサンプルプログラムを作成して、実行してみましょう。}}では、サンプルプログラムを実行してみましょう。リストを選択すると、下にメッセージが表示されます。item2を選択した後にitem6を選択すると、「1-5」と表示されます。まとめはてなブログをはじめよう!MrRadiologyさんは、はてなブログを使っています。ブログを報告するスターをつけました引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。