gpt4 book ai didi

java - JTable 将 boolean 值渲染为 JToggleButton

转载 作者:行者123 更新时间:2023-12-02 06:24:41 24 4
gpt4 key购买 nike

您好,我可以将 boolean 列呈现为 JToggleButton,但如果我按住按钮,我会看到复选框而不是按钮。

 TableColumnModel tcm = smartAlertsTable.getColumnModel();
TableColumn tc = tcm.getColumn( Index of the boolean column);
tc.setCellRenderer(new ActiveAlertRenderer());

ActiveAlertRenderer 在哪里

public class ActiveAlertRenderer extends JToggleButton implements
TableCellRenderer

{

public ActiveAlertRenderer()
{
super();
}

public Component getTableCellRendererComponent(JTable table, Object value,
boolean isSelected, boolean hasFocus, int row, int column)
{

boolean isActive = ((Boolean) value).booleanValue();
if (isActive)
{
this.setText("Armed");
this.setSelected(false);
value = Boolean.TRUE;
}
else
{
this.setText("Triggered");
this.setSelected(true);
value = Boolean.FALSE;
}
return this;
}

}

如何防止出现该复选框?

最佳答案

JTable 使用复选框作为 boolean 列的默认渲染器和编辑器。您提供了自己的渲染器,但编辑器仍然是默认的。这是您在编辑单元格时看到的复选框。您必须以与渲染器类似的方式提供自定义编辑器(TableCellEditor 的实现)。您可以使用 JTable.setDefaultEditor()TableColumn.setCellRenderer 进行设置。

参见Concepts: Editors and Renderers有关更多详细信息,请参阅如何使用表格教程。

关于java - JTable 将 boolean 值渲染为 JToggleButton,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20667180/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com