0
私がしようとしてきたことは、チェックボックス付きのJListです。私は複数の項目を選択することができません。私がそうすると、すでに選択されているアイテムは選択解除されます。私がここで逃したことは何ですか?JCheckBoxを使ったJList
JList recipientsList = new JList(
new RecipientWrapper[] { new RecipientWrapper("apple"), new RecipientWrapper("orange"),
new RecipientWrapper("mango"), new RecipientWrapper("paw paw"), new RecipientWrapper("banana") });
recipientsList.setSelectionMode(ListSelectionModel.MULTIPLE_INTERVAL_SELECTION);
recipientsList.setCellRenderer(new CheckboxListRenderer());
class CheckboxListRenderer implements ListCellRenderer<RecipientWrapper>
{
private static final long serialVersionUID = 1L;
private JCheckBox checkBox;
@Override
public Component getListCellRendererComponent(JList list,RecipientWrapper value, int index, boolean isSelected,
boolean cellHasFocus)
{
Component c = null;
if(value != null)
{
getCheckBox().setText(value.toString());
checkBox.setSelected(isSelected);
value.setSelected(isSelected);
c = checkBox;
}
else
{
c = new JLabel();
}
return c;
}
private JCheckBox getCheckBox()
{
if(checkBox == null)
{
checkBox = new JCheckBox();
}
return checkBox;
}
}
checkBox.setSelected(isSelected);間違った部分です..それはcheckBox.setSelected(value.isSelected())する必要があります。 MouseListenerでJListを再描画する必要があります。 – Brunthavan