java - 动态更改 Tab UIID 在 codenameone 中无法正常工作

标签 java codenameone

我正在其中一种表单中使用选项卡。

如果保存表单时发生任何错误,则选项卡颜色应更改。

我使用的代码如下:

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,但是当我单击选项卡时,它会重置以前的 UIID 样式,而不是坚持新的 UIID 样式。

最佳答案

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

如果选择了要应用的选项卡,您的 uiid Tab_button_error 应该选择您想要显示的样式,否则设置未选择的样式。

应该在选项卡容器上调用 repaint()revalidate() 方法,而不是在 RadioButtons 上调用。

使用组件检查器检查选项卡 RadioButton 的状态以及它们携带的 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++;
}

关于java - 动态更改 Tab UIID 在 codenameone 中无法正常工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35034591/

相关文章:

java - 使用 TableLayout 进行溢出布局

java - 在 gs-collections 库中寻找排序堆和并发队列

java - 如何在 java 中将 java.sql.blob 转换为 base64 编码的字符串

java - 如何在 ant 文件集或 src 中使用通配符

java - 如何使用 JPA 解决 javax.persistence.EntityNotFoundException(不是使用 @NotFound)

css - CodenameOne:自动将主题文件 (theme.res) 转换为 CSS

linux - 哪个文本编辑器可以在linux下正确显示CodenameOne Netbeans插件创建的存储文件?

java - 从字符串创建半三角形

ios - 代号 1 iOS 上的 Unicode/emoji

java - 第三次调用服务器无法从登录中找到 cookie(使用 Codenameone)