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