2016-10-02 2 views
1

Я только что создал небольшое тестовое приложение с использованием CodenameOne без GuiDesigner. Теперь я попытался создать интерфейс с дизайнером с помощью IntelliJ Idea IDE. я сделал следующее:CodenameOne Как использовать файл ресурсов GUI Designer

  • правой кнопкой мыши на src пакет: New -> Codename один контейнер. В результате получается файл MyContainer.java.
  • Щелкните правой кнопкой мыши по MyContainer.java: Новый -> Codename One -> Codename One Designer. Это приведет к созданию окна GUI Builder.
  • Я создал пустой контейнер и некоторые кнопки и добавил несколько изображений.

Теперь первая проблема: Где сохранить этот файл? Я сохранил его в каталоге src как MyContainer.res.

Теперь вторая проблема: Как использовать этот файл res? Как загрузить его? Как получить много изображений из этого? Для чего нужен каталог res? Должен ли он быть там размещен?

Мой код выглядит следующим образом:

public class MyApplication { 

    private Form current; 
    private Resources theme; 
    private Toolbar mToolbar; 

    public void init(Object context) { 
     theme = UIManager.initFirstTheme("/theme"); 

     // Enable Toolbar on all Forms by default 
     Toolbar.setGlobalToolbar(true); 

     // Pro only feature, uncomment if you have a pro subscription 
     // Log.bindCrashProtection(true); 
    } 

    public void start() { 
     if (current != null) { 
      current.show(); 
      return; 
     } 

     Form form = new Form("Main", new BorderLayout()); 
     // vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvv 
     // ----> Here I want the created container to be inserted into the form 
     // ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 
    } 

    public void stop() { 
     current = Display.getInstance().getCurrent(); 
     if (current instanceof Dialog) { 
      ((Dialog) current).dispose(); 
      current = Display.getInstance().getCurrent(); 
     } 
    } 

    public void destroy() { 
    } 

} 

Я вставил комментарий в выше, где я хочу, чтобы загрузить пользовательский интерфейс файла Рез кода.

Я пробовал много способов. Один из них был следующим, но я всегда получаю InvcationTargetException выполнение второй строки:

UIBuilder uib = new UIBuilder(); 
Container cnt = uib.createContainer("MyContainer", "Container"); 

Я попробовал его с косой чертой перед первым параметром, и я изменил параметры, но ничего не получалось.

Должен ли я сначала начать с файла res для загрузки последующих файлов res? Если да, то как начать с файла res?

Пожалуйста, помогите мне после пробуждения 6 часов в это воскресенье.

ответ

0

Дизайнер включает the old GUI builder and not the new one. Я бы предложил избегать этого, поскольку мы вкладываем все наши ресурсы в новый GUI-конструктор, который имеет более знакомый подход к графическому интерфейсу с использованием XML и одного исходного файла == одна форма.

Старый GUI-конструктор имеет смысл только для проектов, созданных для него явно, так как мы автоматически генерируем весь код заглушки.

+0

Я только что попробовал новый GUI-конструктор и имел некоторые технические проблемы. Кажется, обновление не работает должным образом. Если я изменю, например. макет для макета границы не отображается сразу в дереве компонентов. После добавления нового компонента в дерево обновляется. Один раз пользовательский интерфейс больше не реагировал, и мне пришлось его убить (я использую Ubuntu 16.04). Но сгенерированные файлы Java и GUI, похоже, работают. – Guzzer

+0

Но вопрос о добавлении изображений, которые будут использоваться в новом GUI Builder: должен ли я использовать старый графический пользовательский интерфейс для добавления изображения в проект? Я не вижу никакого элемента меню в новом GUI Builder, обеспечивающего функциональность добавления изображения. В видео поддержки старый GUI Designer используется для добавления изображений в файл res. – Guzzer

+0

У нас есть основное обновление плагинов, появившееся в этот уик-энд, которое должно значительно перестроить конструктор графического интерфейса и, надеюсь, решить проблемы. Если это не устраивает проблемы с файлами в отслеживателе проблем с помощью способов воспроизведения http: // github.com/codenameone/CodenameOne/вопросы/изображения помещаются в файл res, который редактируется с помощью конструктора (который также разрабатывает темы). Старый инструмент был сочетанием нескольких инструментов: локализация, тематика, управление ресурсами и т. Д. Мы разворачиваем его до меньших инструментов за один раз, начиная с возможностей построения графического интерфейса. Остальные инструменты все еще существуют ... –

Смежные вопросы