2013-12-25 1 views
0

Я использую следующий код gwt, чтобы поэкспериментировать с компонентами LayoutPanel и SimplePanel GWT, однако, когда я запускаю следующий пример, я ничего не вижу на веб-странице, когда я просматриваю webapge в bweoser (Chrome) Я могу перемещаться по dom для всех панелей макета. Может ли кто-нибудь помочь мне определить, есть ли какие-либо проблемы с кодом. Я также приложил snaphot интерфейса проверки хромового dom для refernce.LayoutPanel с SimplePanel не отображается в браузере

package im.sma.gwt.samples.layoutpannels.client; 

import com.google.gwt.core.client.EntryPoint; 
import com.google.gwt.core.client.GWT; 
import com.google.gwt.dom.client.Style.Unit; 
import com.google.gwt.event.dom.client.ClickEvent; 
import com.google.gwt.event.dom.client.ClickHandler; 
import com.google.gwt.event.dom.client.KeyCodes; 
import com.google.gwt.event.dom.client.KeyUpEvent; 
import com.google.gwt.event.dom.client.KeyUpHandler; 
import com.google.gwt.user.client.rpc.AsyncCallback; 
import com.google.gwt.user.client.ui.Button; 
import com.google.gwt.user.client.ui.DialogBox; 
import com.google.gwt.user.client.ui.HTML; 
import com.google.gwt.user.client.ui.Label; 
import com.google.gwt.user.client.ui.LayoutPanel; 
import com.google.gwt.user.client.ui.RootPanel; 
import com.google.gwt.user.client.ui.SimplePanel; 
import com.google.gwt.user.client.ui.TextBox; 
import com.google.gwt.user.client.ui.VerticalPanel; 

/** 
* Entry point classes define <code>onModuleLoad()</code>. 
*/ 
public class Sma_LayoutPanels implements EntryPoint { 

    public void onModuleLoad() { 
     SimplePanel west = new SimplePanel(); 
     SimplePanel east = new SimplePanel(); 
     SimplePanel middle = new SimplePanel(); 

     west.add(new Label("WEST")); 
     east.add(new Label("EAST")); 
     middle.add(new Label("Middle")); 

     west.getElement().getStyle().setBackgroundColor("blue"); 
     east.getElement().getStyle().setBackgroundColor("pink"); 
     east.getElement().getStyle().setBackgroundColor("yellow"); 


     LayoutPanel holder = new LayoutPanel(); 
     holder.add(west); 
     holder.add(east); 
     holder.add(middle); 

     holder.setWidgetLeftWidth(west, 0, Unit.PCT, 50, Unit.PCT); 
     holder.setWidgetRightWidth(east, 0, Unit.PCT, 50, Unit.PCT); 
     holder.setWidgetLeftRight(middle, 25, Unit.PCT, 25, Unit.PCT); 
     holder.setWidgetTopBottom(middle, 25, Unit.PCT, 25, Unit.PCT); 
     holder.forceLayout(); 

     RootPanel.get().add(holder); 
    } 
} 

enter image description here

ответ

0

Моя ошибка, я использовал RootPanel вместо RootLayoutPanel, поэтому заменив последнюю строку с RootLayoutPanel решить эту проблему.

RootLayoutPanel.get().add(holder); 
0

Вы также должны использовать SimpleLayoutPanel не SimplePanel если вы хотите предсказуемые результаты. Планировочные панели реализуют интерфейсы ProvidesResize и RequiresResize, которые гарантируют правильное изменение размера макета.

Взгляните на документацию GWT http://www.gwtproject.org/doc/latest/DevGuideUiPanels.html

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