2016-07-12 2 views
1

Я пытаюсь настроить бизнес-тему в Codename One. До сих пор я добавил дополнительные кнопки. Прямо сейчас я пытаюсь спрятать эти кнопки с помощью boxlayout y-axis, но в настоящее время я получаю IllegalArgumentException. Я установил форму в рамку границы:Как применить несколько макетов в Codename One?

Form hi = new Form("Welcome", new BorderLayout(BorderLayout.CENTER_BEHAVIOR_CENTER_ABSOLUTE)); 
Button Customer = new Button("Customer"); 
Button gpsProduct = new Button("Find A product Near You"); 
Button learnMore = new Button("Learn More"); 
Button Website = new Button("Visit Our Website"); 
hi.add(BoxLayout.Y_AXIS, Customer). 
    add(BoxLayout.Y_AXIS, learnMore). 
    add(BoxLayout.Y_AXIS, gpsProduct). 
    add(BoxLayout.Y_AXIS, Website); 
hi.show(); 
+0

Всякий раз, когда у вас есть исключение, всегда после ПОЛНЫЙ трассировки стека в вашем вопросе, а также определить в вашем коде, что выдает исключение. –

ответ

0

Расположение ящиков Y не является ограничителем для макета границы. Пока неясно, как вы хотели, чтобы это смотреть, но я предполагаю, что вы хотите что-то подобное, которые устроят компоненты один за другим:

Form hi = new Form("Welcome", BoxLayout.y()); 
Button Customer = new Button("Customer"); 
Button gpsProduct = new Button("Find A product Near You"); 
Button learnMore = new Button("Learn More"); 
Button Website = new Button("Visit Our Website"); 
hi.add(Customer). 
    add(learnMore). 
    add(gpsProduct). 
    add(Website); 
hi.show(); 

Вот два вложенных примеров, которые размещают ящик в родительском макет границы:

Form hi = new Form("Welcome", new BorderLayout()); 
Button Customer = new Button("Customer"); 
Button gpsProduct = new Button("Find A product Near You"); 
Button learnMore = new Button("Learn More"); 
Button Website = new Button("Visit Our Website"); 
Container box = new Container(BoxLayout.y()); 
box.add(Customer). 
    add(learnMore). 
    add(gpsProduct). 
    add(Website); 
hi.add(BorderLayout.CENTER, box); 
hi.show(); 

Это можно записать в сокращенном виде:

Form hi = new Form("Welcome", new BorderLayout()); 
Button Customer = new Button("Customer"); 
Button gpsProduct = new Button("Find A product Near You"); 
Button learnMore = new Button("Learn More"); 
Button Website = new Button("Visit Our Website"); 
hi.add(BorderLayout.CENTER, 
     BoxLayout.encloseY(Customer, learnMore, gpsProduct, Website);); 
hi.show(); 
+0

Да, я хочу, чтобы кнопки были один за другим, но я не хотел, чтобы вся форма была таким. Я пытаюсь иметь свои кнопки в boxlayout и все остальное в макете границы (я добавляю больше компонентов). Я пробовал делать это с редактором темы res, но я не мог достичь того, чего хотел, поэтому я обратился к этому, чтобы кодировать это. Я использовал тему res, чтобы установить фон для моей формы и ничего больше. –

+1

Добавлены еще два образца гнездования –