java动态更改选项卡UIID在codenameone中无法正常工作
我正在其中一个表单中使用tab
如果在保存表单时发生任何错误,则应更改选项卡颜色
我使用的代码如下:
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样式
# 1 楼答案
选项卡不是按钮,而是单选按钮
如果选择了要应用uiid的选项卡,则uiid选项卡按钮错误应已选择要显示的样式,否则将取消选择样式
应该在tabs容器而不是单选按钮上调用
repaint()
或revalidate()
方法使用组件检查器检查选项卡单选按钮的状态以及它们携带的UIID
# 2 楼答案
选项卡按钮用于为选定和未选定设置两种不同的样式。这一点后来得到了整合,因此选项卡的行为类似于单个切换按钮(单选按钮),但剩下的一件事是对
setUIID
的调用,该调用隐式地用于恢复原始的“选项卡”样式。因此,我们有效地调用了选项卡上的setUIID
调用添加所有选项卡后,只需调用
setTabUIID(null)
即可禁用此行为