Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/370.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 动态更改选项卡UIID在codenameone中无法正常工作_Java_Codenameone - Fatal编程技术网

Java 动态更改选项卡UIID在codenameone中无法正常工作

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

我正在其中一个表单中使用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样式。

选项卡不是按钮,而是单选按钮

如果选择了要应用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标记