Вопрос

Я пытаюсь сделать это:

public class DialogMenuHawaii extends Dialog {

    Style s = UiFactory.getBaseStyle();
    s.setBgTransparency(0);
    s.setBgImage( <my image >);
    this.setUnselectedStyle(s);
}

Но это не работает.

Это было полезно?

Решение

Откройте свой файл '.res' в редакторе ресурсов и выберите свою предпочтительную тему,

  1. В разделе «Невыбранная» вкладка открыть DialogContentPane Стиль, если у вас нет ни одного, создайте его, посмотрите на конец этого ответа о том, как это сделать?, И установите фоновое изображение на изображение, которое вам нужно показать как диалог bg
  2. В разделе «Невыбранная» вкладка открыть Диалог тела Стиль, если у вас нет ни одного, создайте его, посмотрите на конец этого ответа о том, как это сделать?, И установите фон прозрачность как '0', а также убедитесь, что тип фонового изображения НИКТО

ПРИМЕЧАНИЕ: Приведенный выше код будет отражать для всех диалогов в вашем приложении. Если вам нужен конкретный диалог с фоновым изображением, чем вывести новые стили из этих стилей по умолчанию, и выполните вышеуказанные шаги, чтобы применить его к вашим Dialogmenuhawaii или любое время выполнения Диалоги.

КАК: Я бы порекомендовал вам пройти через сообщения в блоге Shai Редактор ресурсов Lwuit До 10., чтобы лучше понять редактор Resouce его функции и возможности.

:

:

:

PS: Программно-осторожно Textarea Что имеет место для диалога по умолчанию. Если вы замените компонент корпуса диалога на Этикетка Если работает нормально, образец кода приведен ниже. Я не сильно углубился в то, почему это так? Может быть, сделаю это в свободное время. Следовательно, я предложил рабочее альтернативное решение, которое написано выше с использованием редактора ресурсов и ниже, используя код

class MyDialog extends Dialog {

    public void show() {
        Container octnPane = this.getDialogComponent();
        octnPane.getUnselectedStyle().setBgTransparency(0, false);

        Container ctnPane = (Container)((BorderLayout)octnPane.getLayout()).getCenter();
        ctnPane.getUnselectedStyle().setBackgroundType(Style.BACKGROUND_IMAGE_SCALED, false);
        ctnPane.getUnselectedStyle().setBgImage(myImage, false);

        Label t = new Label("Dialog");
        t.setUIID("DialogBody");
        t.getUnselectedStyle().setBgTransparency(0, false);
        ctnPane.addComponent(t);

        super.show();
    }
}

Другие советы

Во -первых, я предлагаю вам использовать тема. Анкет Мы постоянно меняем небольшие детали реализации, например, настройки, подобные тем, которые вы делаете, не будут портативными между LWIUT 1.4 и 1,5. Нет никаких причин не использовать тему для чего -то подобного.

Если вы заинтересованы в боли и страданиях логики вручную кодирования в вашем приложении, вы можете использовать несколько методов, таких как getDialogComponent() Чтобы получить стиль от них и манипулировать этим. Диалог - это сложный зверь из -за того, что это действительно форма, подходящая от краев.

Это для диалогового фона.

Dialog dialog = new Dialog();
dialog.getDialogStyle().setBgImage(Image.createImage("/image/image.png"));

Если вы хотите установить прозрачность диалога с изображением.

dialog.getStyle().setBgImage(Image.createImage("/image/image.png");
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top