[英]How to keep the currently selected rows highlighted even after disabling the row selection in jTable in java
我在Java中有一个JTable
,其中包含5行(可以说)UI。
我选择2行,并高亮显示这2行,然后单击一个按钮。 现在在代码中,在该按钮上,我禁用了行选择,因此单击该按钮后,将无法再选择任何行。
但是问题在于,这2行的选择已清除,这意味着在代码中我可以访问这2条选定的行,但是在UI中,禁用后这些行未突出显示。
有什么方法即使禁用行选择后也可以保留UI中的行选择?
创建一个自定义ListSelectionModel
,它允许您切换模型的选择状态。
public class ToggleListSelectionModel extends ListSelectionModel
{
private boolean selectionEnabled = true;
public ToggleListSelectionModel()
{
super();
}
public boolean isSelectionEnabled()
{
return selectionEnabled;
}
public void setSelectionEnabled(boolean selectionEnabled)
{
this.selectionEnabled = selectionEnabled;
}
@Override
public void addSelectionInterval(int index0, int index1)
{
if (selectionEnabled)
super.addSelectionInterval(index0, index1);
}
// Override other add/remove methods
}
然后,可以在按钮的ActionListener中禁用选择状态。
没有代码示例,很难提供帮助。 但是我建议为选定的行设置css类。 使用jQuery,您可以像这样:
$(selector).addClass('yourCSSClass')
您也可以使用.removeClass删除css类。
或者,您可以使用.toggleClass来添加或删除css类。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.