我正在使用表格中的标签。
如果在保存表单时发生任何错误,则标签颜色应该更改。
我使用的代码如下:
for(Integer tabIndex: errorTabIndex){
if(index==0){
tabs.setSelectedIndex(tabIndex);
}
Button c = (Button) tabs.getTabsContainer().getComponentAt(tabIndex);
c.setUIID("Tab_button_error");
c.repaint();
index++;
}
此代码设置了新的UIID,但是当我点击tab而不是坚持新的UIID样式时,它会重置以前的UIID样式。
答案 0 :(得分:1)
标签不是按钮,而是RadioButtons。
如果要选择要应用的标签,则您的uiid Tab_button_error 应该选择要显示的样式,否则请选择未选择的样式。
应在标签容器上调用repaint()
或revalidate()
方法,而不是RadioButtons。
使用组件检查器检查您的选项卡RadioButtons的状态以及它们携带的UIID。
for(Integer tabIndex: errorTabIndex) {
if(index==0) {
tabs.setSelectedIndex(tabIndex);
}
RadioButton radTab = (RadioButton) tabs.getTabsContainer().getComponentAt(tabIndex);
radTab.setUIID("Tab_button_error");
tabs.getTabsContainer().repaint();
index++;
}
答案 1 :(得分:0)
Tab键按钮用于选择和取消选择两种不同的样式。这后来被合并,因此标签表现为单个切换按钮(单选按钮)但是剩下的一件事就是调用setUIID
隐含地恢复原始" Tab"样式。因此,我们有效地调用Tab上的setUIID
调用。
添加所有选项卡后,只需调用setTabUIID(null)
即可禁用此行为。