我有一个 JList,它是一个集合大小(维度),由用户最初指定的字符串数组组成。只要元素超出维度范围,JList 就会嵌套在 ScrollPane 内。我的问题是,如果 JList 只有 4 个项目,并且用户单击最后一个索引下方的某个位置,则选择最后一个索引。我的 JList 使用 DefaultListModel 进行初始化,并且有一个 CellRenderer 使其成为复选框列表。即使未单击元素,如何让 JList 停止选择最后一项?
编辑:细胞渲染器
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;