uiBuilderを使用して初期化されたプロジェクトに2 x 2グリッドがありますが、グリッドはページに表示されません。タイトルと小見出しはうまく表示されます。私はこれと数日間苦労してきました。どんなアドバイスも非常に感謝しています(これは私の最初のgwtプロジェクトです)。ありがとうございました! Test.java、TaskSelect.javaとTaskSelect.ui.xmlGWTグリッドがuiBinderで表示されない
* Test.java ***
package org.client;
import com.google.gwt.core.client.*;
import com.google.gwt.user.client.ui.*;
public class Test extends DeckPanel implements EntryPoint
{
public void onModuleLoad()
{
Test t = new Test();
TaskSelect taskselect = new TaskSelect();
t.add(taskselect);
t.showWidget(0);
RootPanel.get().clear();
RootPanel.get().add(t);
}
}
* TaskSelect.java:
は、3つのファイルがあります **
package org.client;
import com.google.gwt.user.client.ui.*;
import com.google.gwt.core.client.GWT;
import com.google.gwt.uibinder.client.*;
public class TaskSelect extends Composite {
interface Binder extends UiBinder<Widget, TaskSelect> { }
private static final Binder binder = GWT.create(Binder.class);
@UiField Button buttonA;
@UiField Button buttonB;
@UiField Button buttonC;
@UiField Button buttonD;
@UiField Grid mygrid;
public TaskSelect() {
initWidget(binder.createAndBindUi(this));
}
}
* TaskSelect.ui.xml **
<ui:UiBinder
xmlns:ui='urn:ui:com.google.gwt.uibinder'
xmlns:g='urn:import:com.google.gwt.user.client.ui'>
<ui:style>
.bigbutton {
font-size: 24pt;
width: 300px;
height: 95px;
}
.h1 {
font-size: 36pt;
font-weight: bold;
text-align: center;
margin: auto;
}
.subheading {
font-size: 24pt;
text-align: center;
margin: auto;
}
.panel {
margin: auto;
}
</ui:style>
<g:DockLayoutPanel unit='EM' addStyleNames='{style.panel}'>
<g:north size='10'>
<g:VerticalPanel addStyleNames='{style.panel}'>
<g:Label addStyleNames='{style.h1}'>Title is here</g:Label>
<g:Label addStyleNames='{style.subheading}'>Sub heading</g:Label>
</g:VerticalPanel>
</g:north>
<g:center size='10'>
<g:Grid ui:field='mygrid' addStyleNames='{style.panel}' cellSpacing='50'>
<g:row>
<g:customCell>
<g:Button ui:field='buttonA'>Button A</g:Button>
</g:customCell>
<g:customCell>
<g:Button addStyleNames='{style.bigbutton}' text='Button B' ui:field='buttonB' />
</g:customCell>
</g:row>
<g:row>
<g:customCell>
<g:Button addStyleNames='{style.bigbutton}' text='Button C' ui:field='buttonC' />
</g:customCell>
<g:customCell>
<g:Button addStyleNames='{style.bigbutton}' text='Button D' ui:field='buttonD' />
</g:customCell>
</g:row>
</g:Grid>
</g:center>
</g:DockLayoutPanel>
</ui:UiBinder>
これを '.panel'に追加しましたが、結果は変更されません。タイトルと小見出しが表示されますが、中央のグリッドは表示されません。私はもともとDockPanelを持っていましたが、GWTは廃止予定だと私に言っていました.DockLayoutPanelを使うべきです。 – Tomasz
はい、DockLayoutPanelはレイアウトパネルであり、これには特別な注意が必要です。 gwtのドキュメントサイト(http://code.google.com/webtoolkit/doc/latest/DevGuideUiPanels.html#LayoutPanels)でお読みください。おそらく、なぜ今は動作していないのでしょうか? 'RootLayoutPanel.get()'を使用してdoctypeをチェックする必要があるからです。 –
あなたは伝説です! RootLayoutPanel.xxxに変更すると修正されました。どうもありがとうございました! – Tomasz