Java me 如何使用lwuit Painter

Java me 如何使用lwuit Painter,java-me,lwuit,Java Me,Lwuit,我想用画师创建一组按钮。我编写了下一个代码 class ListButton extends Button{ int id; ListButton(int id, final Image unsel, final Image sel, final Image pres) { this.id = id; getUnselectedStyle().setBgTransparency(255); getSelectedStyle().setBgT

我想用画师创建一组按钮。我编写了下一个代码

class ListButton extends Button{
int id;
    ListButton(int id, final Image unsel, final Image sel, final Image pres) {
        this.id = id;
        getUnselectedStyle().setBgTransparency(255);
        getSelectedStyle().setBgTransparency(255);
        getPressedStyle().setBgTransparency(255);            
        getUnselectedStyle().setAlignment(Component.LEFT);
        getSelectedStyle().setAlignment(Component.LEFT);
        getPressedStyle().setAlignment(Component.LEFT); 
        getUnselectedStyle().setBgPainter(new Painter(){

            public void paint(Graphics graphics, Rectangle rectangle) {

                graphics.drawImage(buttonBgImage, 0, 0);
                int w= rectangle.getSize().getWidth();
                int h= rectangle.getSize().getHeight();
                graphics.drawImage(unsel, w- unsel.getWidth()-10, (h- unsel.getHeight())/2+ 3);
            }
        });
        getSelectedStyle().setBgPainter(new Painter(){

            public void paint(Graphics graphics, Rectangle rectangle) {
                graphics.drawImage(buttonBgImage, 0, 0);
                int w= rectangle.getSize().getWidth();
                int h= rectangle.getSize().getHeight();
                graphics.drawImage(sel, w- sel.getWidth()-10, (h- sel.getHeight())/2+ 3);
            }
        });
        getPressedStyle().setBgPainter(new Painter(){

            public void paint(Graphics graphics, Rectangle rectangle) {
                graphics.drawImage(buttonBgImage, 0, 0);
                int w= rectangle.getSize().getWidth();
                int h= rectangle.getSize().getHeight();
                graphics.drawImage(pres, w- pres.getWidth()-10, (h- pres.getHeight())/2+ 3);
            }
        });

    }

}

如果我在表单中插入两个按钮,只有第一个按钮显示良好。第二个按钮没有背景图像(ButtonGimage)和图标(sel、unsel或pres)。我随机发现,第二个按钮将被画,如果它将插入一些容器。什么奇怪的行为?对不起,我说的是英语。

列表中有一个针对渲染器/画师的特定优化,打破了这一点。我们通常建议人们坚持风格和UIID操作,避免使用画师来完成这些任务

例如,在/LWUIT中,我们甚至在GUI builder中为列表渲染器中的细条纹UI提供了特定支持


如果您坚持使用这种方法,请尝试使用list.setmutablerenderbackgrounds(true);禁用此优化。

列表中有一个针对渲染器/画师的特定优化,打破了这一点。我们通常建议人们坚持风格和UIID操作,避免使用画师来完成这些任务

例如,在/LWUIT中,我们甚至在GUI builder中为列表渲染器中的细条纹UI提供了特定支持

如果您坚持使用这种方法,请尝试使用list.setmutablerenderbackgrounds(true);禁用此优化