其他分享
首页 > 其他分享> > 如何使JTable列包含复选框?

如何使JTable列包含复选框?

作者:互联网

前言:我对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为您处理渲染.

Another example is here.

标签:jcheckbox,java,swing,jtable,tablecellrenderer
来源: https://codeday.me/bug/20191002/1843402.html