前言:我对 java 很糟糕,对 java ui 组件更糟。
我找到了几个关于如何向表格添加按钮的不同教程,但是我在添加复选框方面遇到了困难。我需要一个列来绘制一个默认勾选的文本框(我认为单元格渲染器可以处理),然后点击勾选框,取消勾选框,重绘所述框,并在我可以跟踪的地方触发事件。
目前我有一个自定义的 cellrenderer:
public class GraphButtonCellRenderer extends JCheckBox implements TableCellRenderer {
public GraphButtonCellRenderer() {
}
public Component getTableCellRendererComponent(JTable table, Object value, boolean isSelected, boolean hasFocus, int row, int column) {
if(isSelected)
setSelected(true);
else
setSelected(false);
setMargin(new Insets(0, 16, 0, 0));
setIconTextGap(0);
setBackground(new Color(255,255,255,0));
return this;
}}
当前处理勾选框的绘制,但仅在选中该行时勾选和取消勾选该框。但我不知道如何处理这些事件。我真正要问的可能是一个链接,该链接指向一个关于如何将复选框干净地添加到 JTable 的好教程。 非常感谢任何帮助:)
最佳答案
无需创建自己的表格渲染器。 Here's a simpler example .只需创建一个自定义表模型,并为给定的列返回 boolean 类:
public Class getColumnClass(int column)
如果你希望列是可编辑的,返回true
public boolean isCellEditable(int row, int column)
JTable 会为您处理渲染。
关于java - 如何使 JTable 列包含复选框?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2901470/