ユーザーが最初に指定する文字列の配列で構成されるセット サイズ (ディメンション) の JList があります。JList は、要素がディメンションの範囲を超える場合に備えて、ScrollPane 内にネストされます。私の問題は、JList にたとえば 4 つの項目しかなく、ユーザーが最後のインデックスの下のスポットをクリックすると、最後のインデックスが選択されることです。私の JList は DefaultListModel で初期化され、チェックボックスのリストを作成する CellRenderer があります。要素がクリックされていない場合でも、JList が最後の項目の選択を停止するようにするにはどうすればよいですか?
編集:CellRenderer
Color background = null;
Color foreground = null;
setOpaque(true);
setText(value.toString());
if (isSelected) {
setForeground(Color.red);
setSelected(true);
value = value.toString().substring(0, value.toString().length() - 1);
setText(value.toString());
} else {
if (value.toString().endsWith("t")) {
background = Color.white;
foreground = Color.green;
setSelected(true);
setBackground(background);
setForeground(foreground);
value = value.toString().substring(0, value.toString().length() - 1);
setText(value.toString());
} else {
background = Color.white;
foreground = Color.blue;
setSelected(false);
setBackground(background);
setForeground(foreground);
value = value.toString().substring(0, value.toString().length() - 1);
setText(value.toString());
}
}
return this;