2016-02-03 2 views
1

Я хочу, чтобы отобразить карту с некоторыми координатами, я могу сделать это на одном GUI элемент, но когда я дублировать код для других GUI элемента карта не отображаетсяCodename Одна карта

Это код один графический элемент (страница или экран)

@Override 
protected void beforeMapaGPS(Form f) { 
    MapComponent mapComponent= new MapComponent(); 
    double latitude=-41.169782; 
    double longitude =-71.444885; 

    Coord lastLocation = new Coord(latitude, longitude); 
    mapComponent.zoomTo(lastLocation, 15); 


    f.setLayout(new FlowLayout()); 
    f.addComponent(mapComponent); 
    f.show(); 
} 

и это другой графический элемент (другая страница или экран) копируется из первого

@Override 
protected void onCreateGUI1() { 
MapComponent mapComponent= new MapComponent(); 
    double latitude=-41.169782; 
    double longitude =-71.444885; 

    Coord lastLocation = new Coord(latitude, longitude); 
    mapComponent.zoomTo(lastLocation, 15); 


    f.setLayout(new FlowLayout()); 
    f.addComponent(mapComponent); 
    f.show(); 
} 

при запуске симулятора карт появляется на ели т страницы или экрана, а не на другой

сообщение получил, когда я сохраняю дизайнер

enter image description here

+1

ответ от @diamond правильно. Я также предлагаю проверить ваш пользовательский интерфейс, чтобы убедиться, что у вас нет элементов GUI, которые мешают вашей карте, например. другая карта ... Я бы также предложил установить контрольную точку в коде, чтобы проверить, что вызов до * достигнут. –

+0

Не совсем, элементы GUI пусты, на обоих экранах –

+0

Я не уверен, что это связано, но я делаю это: я дублирую элемент GUI, добавляю перед действием шоу, а когда я сохраняю, я получаю предупреждение, связанное с изображениями (I добавили его в сообщение), в то же время @Overrride по-прежнему на Statemachine.java в красном, не добавляется в sateachineBase, даже когда я сохраняю файл несколько раз –

ответ

2

Во-первых, не используйте FlowLayout для любого компонента пэра или сложных компонентов, как карты, браузер, список , Многостраничный список ...

Во-вторых, вы реализуете код карты в методе onCreate для второй формы. Сделайте это внутри beforeShow() или postShow() методов.

И наконец, вы запрашиваете форму, которая уже показывает, чтобы показать ее снова, вызвав f.show() внутри метода beforeShow().

Измените свой код:

@Override 
protected void beforeMapaGPS(Form f) { 
    MapComponent mapComponent= new MapComponent(); 
    double latitude=-41.169782; 
    double longitude =-71.444885; 

    Coord lastLocation = new Coord(latitude, longitude); 
    mapComponent.zoomTo(lastLocation, 15); 

    f.setLayout(new BorderLayout()); 
    f.addComponent(BorderLayout.CENTER, mapComponent); 
} 

, а второй к:

@Override 
protected void beforeGUI1(Form f) { 
    MapComponent mapComponent= new MapComponent(); 
    double latitude=-41.169782; 
    double longitude =-71.444885; 

    Coord lastLocation = new Coord(latitude, longitude); 
    mapComponent.zoomTo(lastLocation, 15); 

    f.setLayout(new BorderLayout()); 
    f.addComponent(BorderLayout.CENTER, mapComponent); 
} 
+0

Все еще ничего. Я добавил (форма f) во вторую защищенную void beforeGUI(), затем запустил симулятор и на втором экране не было карты. –

+0

Я пытался, как вы писали, и сообщение получать не может найти символ, переменная f –

+0

Я пропустил 'Form f', я отредактировал свой ответ. – Diamond

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