項目が存在しない場合でも 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);
}