Panelを極めよう! (6/8)
作成:2009-12-29 19:17
更新:2009-12-29 19:17
更新:2009-12-29 19:17
■複数項目の選択は?
ListBoxでは、複数の項目が選択できるような使い方もあります。MULTIPLE_SELECTやCHECK_BOXなどを指定すると、複数の項目が選択できるようになります。こういう場合は、getSelectedIndexでは選択されているすべての項目を得ることができません。
こういう場合は、すべての項目について選択状態をチェックして処理していくことになります。実際に簡単な例を挙げましょう。
ここでは、CHECK_BOXを使って複数のチェックボックスを表示させました。ListBoxを選択し、チェックボックスをON/OFFしてから確定すると、選択している項目名がすべてLabelに表示されます。
ここでは、以下のようにしてすべての項目から選択されているものだけをString変数にまとめています。
for(int i = 0;i < list.getItemCount();i++){
if (list.isIndexSelected(i))
res += "「" + list.getItem(i) + "」";
}
「getItemCount」は、ListBoxに組み込まれている項目数を返すメソッドです。これでゼロ番から順に繰り返し処理を行っていきます。指定の番号の項目が選択されているかどうかは、「isIndexSelected」で調べることができます。これがtrueだったら、getItemでその項目のテキストを変数に追加していくわけです。
こういう場合は、すべての項目について選択状態をチェックして処理していくことになります。実際に簡単な例を挙げましょう。
ここでは、CHECK_BOXを使って複数のチェックボックスを表示させました。ListBoxを選択し、チェックボックスをON/OFFしてから確定すると、選択している項目名がすべてLabelに表示されます。
ここでは、以下のようにしてすべての項目から選択されているものだけをString変数にまとめています。
for(int i = 0;i < list.getItemCount();i++){
if (list.isIndexSelected(i))
res += "「" + list.getItem(i) + "」";
}
「getItemCount」は、ListBoxに組み込まれている項目数を返すメソッドです。これでゼロ番から順に繰り返し処理を行っていきます。指定の番号の項目が選択されているかどうかは、「isIndexSelected」で調べることができます。これがtrueだったら、getItemでその項目のテキストを変数に追加していくわけです。
(by. SYODA-Tuyano.)
※プログラムリストが表示されない場合
AddBlockなどの広告ブロックツールがONになっていると、プログラムリスト等が表示されない場合があります。これらのツールをOFFにしてみてください。
●プログラム・リスト●
※MainPanelの修正 class MainPanel extends Panel implements ComponentListener { private Label label; private ListBox list; MainPanel() { setTitle("Start IApplication"); HTMLLayout layout = new HTMLLayout(); this.setLayoutManager(layout); label = new Label("Button Sample"); this.add(label); layout.br(); list = new ListBox(ListBox.CHECK_BOX); list.append("Windows"); list.append("Linux"); list.append("Mac OS X"); this.add(list); this.setComponentListener(this); } public void componentAction(Component source, int type, int param) { switch(type){ case ComponentListener.BUTTON_PRESSED: break; case ComponentListener.SELECTION_CHANGED: if (source == list){ String res = ""; for(int i = 0;i < list.getItemCount();i++){ if (list.isIndexSelected(i)) res += "「" + list.getItem(i) + "」"; } label.setText(res); } break; case ComponentListener.TEXT_CHANGED: break; } } }
※関連コンテンツ