使用以下代码时,我不断收到警告。

TextArea txtLabel = new TextArea(labeltext);
            txtLabel.setUIID("login_title");
            txtLabel.setEditable(false);
            txtLabel.setRows(2);
            txtLabel.setGrowLimit(2);
            txtLabel.setScrollVisible(false);
            txtLabel.setGrowByContent(false);

使用以下代码时,警告会消失。
SpanLabel txtLabel = new SpanLabel(labeltext);
            txtLabel.setUIID("login_title");
            txtLabel.setScrollVisible(false);

我不明白为什么TextArea会引起警告“超出绘画队列大小,请注意重新绘画调用的数量”

我使用TextArea是因为我想要两行多行标签。

最佳答案

当队列中的repaint()调用过多时,将发生这些警告。这两个调用之间的主要区别是columns属性的默认值,但我不认为这是发出警告的原因。最终导致它超出阈值的只是事情。

您可能有一个过于复杂的主题,它需要花费很长时间来绘制(渐变?),并且在非常复杂的层次结构中有许多组件,这使得消除绘制调用变得更加困难。我建议您在性能监视器工具中检查设计,看看有哪些可以改进的地方,以及真正发生的油漆问题。请参阅此开发人员指南部分:

https://www.codenameone.com/manual/performance-debugging.html

09-09 17:41