paintBackground как-то сейчас готово к работе - PullRequest
0 голосов
/ 08 сентября 2011

Я пытаюсь создать собственный диалог для ежевики ...

public class cusDialog extends Screen implements FieldChangeListener {

    private cusButtField okButton;

    protected void paintBackground(Graphics graphics) {   /// this doesn't seem to work.
        graphics.setColor(0x999966);                       /// should I somehow call it?
        graphics.fillRoundRect(0, 0, getWidth(), getHeight(), 12, 12);
        graphics.setColor(Color.BLACK);
        graphics.drawRoundRect(0, 0, getWidth(), getHeight(), 12, 12);
        }

    public cusDialog(String message) {
        super(new VerticalFieldManager(), Screen.DEFAULT_CLOSE);
        try {
        FontFamily alphaSansFamily = FontFamily.forName("BBAlpha Serif");
        Font appFont = alphaSansFamily.getFont(Font.PLAIN, 9, Ui.UNITS_pt);
        setFont(appFont);
        } catch (ClassNotFoundException e) {
        }
        add(new LabelField(message));
        add(new SeparatorField());
        okButton = new cusButtField("OK", Color.WHITE, Color.LIGHTGREY, Color.YELLOW, Color.GREEN,Field.FIELD_HCENTER);
        okButton.setChangeListener(this);
        add(okButton);
        }

    protected void sublayout(int width, int height) {
        layoutDelegate(width - 80, height - 80);
        setPositionDelegate(10, 10);
        setExtent(width - 60, Math.min(height - 60, getDelegate().getHeight() + 20));
        setPosition(30, (height - getHeight())/2);
        }

    public void fieldChanged(Field field, int context) {
        if (field == okButton) {
        close();
        }
        }


}

все же часть "paintBackground" выше не работает, то есть диалоговое окно появляется на белом фоне. Как вы думаете, что может быть не так, я должен как-то вызвать этот метод? Должен ли я положить в другом месте?

Спасибо!

1 Ответ

2 голосов
/ 08 сентября 2011

У меня была такая же проблема некоторое время назад на JDE 4.5.Как объяснено здесь (Blackberry-KB) , приведенный ниже код работал для меня.

public void paint(Graphics graphics)
{
    graphics.setBackgroundColor(Color.DARKRED);
    graphics.clear();
    super.paint(graphics);
}

также вы можете проверить этот вопрос.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...