[英]How to add a custom checkbox into JList (Java)?
该程序的外观如下:
这就是我想要的样子:
如您在图片中看到的,我已经尝试了一下,并了解到我需要使用ListCellRenderer
,但是问题是我创建了2个自定义png文件
Checked.png和
unchecked.png
当我点击每日goals #1
它应该设置为state = true
并且checked.png
应该出现并保持选中状态,除非再次单击它。 Unchecked.png
可能是在标准jList column
。
我也想将我的复选框放置在行尾(填充)的左侧1厘米,不确定如何在Java中完成它。 (通过查看图片,您会更好地理解)
看了一些指南之后,我了解到向JList column
添加额外内容的唯一方法是使用ListCellRenderer
。 我尝试了很长时间没有成功,所以想到了问别人。 有人对如何执行此操作有任何想法吗?
想法是让它工作,然后通过将Jtable列更改为Daily目标并显示X来表示已实现目标,从而在JTable中显示。 但是我认为我应该能够做到这一点,主要的问题是自定义复选框的实现。
注意将复选框中的文本覆盖为实际的列表单元格值
public class TestFrame extends JFrame { ImageIcon iconChecked = new ImageIcon(TestFrame.class.getResource("checked.png")); ImageIcon iconUnchecked = new ImageIcon(TestFrame.class.getResource("unchecked.png")); JList jList = new JList(new Object[]{"ABC", "123"}); public TestFrame() { this.add(jList); jList.setSelectionMode(ListSelectionModel.MULTIPLE_INTERVAL_SELECTION); jList.setCellRenderer(new ListCellRenderer() { @Override public Component getListCellRendererComponent(JList list, Object value, int index, boolean isSelected, boolean cellHasFocus) { for (int i : list.getSelectedIndices()) { if (index == i) { JCheckBox checkBoxChecked = new JCheckBox(value.toString(), iconChecked); return checkBoxChecked; } } JCheckBox checkBoxUnchecked = new JCheckBox(value.toString(), iconUnchecked); return checkBoxUnchecked; } }); }}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.