0

項目が存在しない場合でも Jlist がインデックス 0 を選択する理由。

JList lst を作成し、そのコンテンツをクラス people のオブジェクトで構成されるベクトル vct として設定したコードを次に示します。

問題のスクリーンショット

ctrl+F を押したときに呼び出されるこのコードを実行すると、入力ダイアログに「alfozen」と入力すると、インデックス 0(1st item ) は常に選択された状態で表示されます。これは、stackOverflow での最初の質問です。

これがコードです。

if ((ke.getKeyCode() == KeyEvent.VK_F) && ((ke.getModifiers() & 
KeyEvent.CTRL_MASK) != 0))
{
 int i=0,j=0;

 lst.clearSelection();
 lst.setSelectionMode(ListSelectionModel.MULTIPLE_INTERVAL_SELECTION);

 String s=JOptionPane.showInputDialog("Enter Name to search : ");
   if(s==null)return;

 String arg[]=new String[vct.size()];
 int arr[]=new int[vct.size()];

 for(people p : vct)
 {
  arg[i++]=p.toString();
 }

for(j=0,i=0;j<arg.length;j++)
{
 if(arg[j].contains(s))
 {
  arr[i++]=j;
 }
}
lst.setSelectedIndices(arr);
lst.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
}
4

1 に答える 1