Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/gwt/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 无法在SimpleLayout中加载组合_Java_Gwt - Fatal编程技术网

Java 无法在SimpleLayout中加载组合

Java 无法在SimpleLayout中加载组合,java,gwt,Java,Gwt,我开始使用GWT时遇到了一些困难。我试图在SimpleLayout中加载一个组合,但没有显示任何内容。它没有抛出任何类型的错误,所以我不知道去哪里找 我的切入点如下: import com.google.gwt.core.client.EntryPoint; import com.google.gwt.user.client.ui.RootPanel; public class AppDriver implements EntryPoint{ private ExampleShell

我开始使用GWT时遇到了一些困难。我试图在SimpleLayout中加载一个组合,但没有显示任何内容。它没有抛出任何类型的错误,所以我不知道去哪里找

我的切入点如下:

import com.google.gwt.core.client.EntryPoint;
import com.google.gwt.user.client.ui.RootPanel;

public class AppDriver implements EntryPoint{

    private ExampleShell shell;

    @Override
    public void onModuleLoad() {
        shell = new ExampleShell();
        RootPanel.get().add(shell);

    }

}
import com.google.gwt.core.client.GWT;
import com.google.gwt.event.dom.client.ClickEvent;
import com.google.gwt.event.dom.client.ClickHandler;
import com.google.gwt.uibinder.client.UiBinder;
import com.google.gwt.user.client.ui.Composite;
import com.google.gwt.user.client.ui.Widget;
import com.google.gwt.uibinder.client.UiField;
import com.google.gwt.user.client.ui.Button;
import com.ohapp.helloweb.client.contacts.ContactsUi;
import com.google.gwt.user.client.ui.SimplePanel;

    public class ExampleShell extends Composite {

        private static ExampleShellUiBinder uiBinder = GWT
                .create(ExampleShellUiBinder.class);


        @UiField Button btnHome;
        @UiField Button btnContacts;
        @UiField SimplePanel contentPanel;

        interface ExampleShellUiBinder extends UiBinder<Widget, ExampleShell> {
        }

        public ExampleShell() {
            initWidget(uiBinder.createAndBindUi(this));

            btnHome.addClickHandler(new ClickHandler() {

                @Override
                public void onClick(ClickEvent event) {
                    //TODO
                }
            });

            btnContacts.addClickHandler(new ClickHandler() {

                @Override
                public void onClick(ClickEvent event) {
                    try{
                        SimplePanel panel = ExampleShell.this.getContentPanel();
                        panel.clear();
                        ContactsUi contacts = new ContactsUi();
                        panel.add(contacts);

                    } catch (Exception ex){
                        System.out.println(ex.getStackTrace());
                    }
                }
            });
        }

        public SimplePanel getContentPanel(){
            return this.contentPanel;
        }

        public void setContentPanel(SimplePanel contentPanel){
            this.contentPanel = contentPanel;
        }
    }
<!DOCTYPE ui:UiBinder SYSTEM "http://dl.google.com/gwt/DTD/xhtml.ent">
<ui:UiBinder xmlns:ui="urn:ui:com.google.gwt.uibinder"
    xmlns:g="urn:import:com.google.gwt.user.client.ui">
    <ui:style>
        .important {
            font-weight: bold;
        }
    </ui:style>
    <g:DockLayoutPanel>
        <g:north size="100.0">
            <g:FlowPanel>
                <g:Image width="80px" height="80px"/>
                <g:Button ui:field="btnHome">Home</g:Button>
                <g:Button ui:field="btnContacts">Contacts</g:Button>
            </g:FlowPanel>
        </g:north>
        <g:center>
            <g:SimplePanel ui:field="contentPanel"/>
        </g:center>


    </g:DockLayoutPanel>
</ui:UiBinder> 
import com.google.gwt.core.client.GWT;
import com.google.gwt.uibinder.client.UiBinder;
import com.google.gwt.user.client.ui.Composite;
import com.google.gwt.user.client.ui.Widget;


public class ContactsUi extends Composite {

    private static ContactsUiBinder uiBinder = GWT
            .create(ContactsUiBinder.class);

        interface ContactsUiBinder extends UiBinder<Widget, ContactsUi> {
    }

    public ContactsUi() {
        initWidget(uiBinder.createAndBindUi(this));


    }
}
此类工作正常,加载的ExampleShell类如下所示:

import com.google.gwt.core.client.EntryPoint;
import com.google.gwt.user.client.ui.RootPanel;

public class AppDriver implements EntryPoint{

    private ExampleShell shell;

    @Override
    public void onModuleLoad() {
        shell = new ExampleShell();
        RootPanel.get().add(shell);

    }

}
import com.google.gwt.core.client.GWT;
import com.google.gwt.event.dom.client.ClickEvent;
import com.google.gwt.event.dom.client.ClickHandler;
import com.google.gwt.uibinder.client.UiBinder;
import com.google.gwt.user.client.ui.Composite;
import com.google.gwt.user.client.ui.Widget;
import com.google.gwt.uibinder.client.UiField;
import com.google.gwt.user.client.ui.Button;
import com.ohapp.helloweb.client.contacts.ContactsUi;
import com.google.gwt.user.client.ui.SimplePanel;

    public class ExampleShell extends Composite {

        private static ExampleShellUiBinder uiBinder = GWT
                .create(ExampleShellUiBinder.class);


        @UiField Button btnHome;
        @UiField Button btnContacts;
        @UiField SimplePanel contentPanel;

        interface ExampleShellUiBinder extends UiBinder<Widget, ExampleShell> {
        }

        public ExampleShell() {
            initWidget(uiBinder.createAndBindUi(this));

            btnHome.addClickHandler(new ClickHandler() {

                @Override
                public void onClick(ClickEvent event) {
                    //TODO
                }
            });

            btnContacts.addClickHandler(new ClickHandler() {

                @Override
                public void onClick(ClickEvent event) {
                    try{
                        SimplePanel panel = ExampleShell.this.getContentPanel();
                        panel.clear();
                        ContactsUi contacts = new ContactsUi();
                        panel.add(contacts);

                    } catch (Exception ex){
                        System.out.println(ex.getStackTrace());
                    }
                }
            });
        }

        public SimplePanel getContentPanel(){
            return this.contentPanel;
        }

        public void setContentPanel(SimplePanel contentPanel){
            this.contentPanel = contentPanel;
        }
    }
<!DOCTYPE ui:UiBinder SYSTEM "http://dl.google.com/gwt/DTD/xhtml.ent">
<ui:UiBinder xmlns:ui="urn:ui:com.google.gwt.uibinder"
    xmlns:g="urn:import:com.google.gwt.user.client.ui">
    <ui:style>
        .important {
            font-weight: bold;
        }
    </ui:style>
    <g:DockLayoutPanel>
        <g:north size="100.0">
            <g:FlowPanel>
                <g:Image width="80px" height="80px"/>
                <g:Button ui:field="btnHome">Home</g:Button>
                <g:Button ui:field="btnContacts">Contacts</g:Button>
            </g:FlowPanel>
        </g:north>
        <g:center>
            <g:SimplePanel ui:field="contentPanel"/>
        </g:center>


    </g:DockLayoutPanel>
</ui:UiBinder> 
import com.google.gwt.core.client.GWT;
import com.google.gwt.uibinder.client.UiBinder;
import com.google.gwt.user.client.ui.Composite;
import com.google.gwt.user.client.ui.Widget;


public class ContactsUi extends Composite {

    private static ContactsUiBinder uiBinder = GWT
            .create(ContactsUiBinder.class);

        interface ContactsUiBinder extends UiBinder<Widget, ContactsUi> {
    }

    public ContactsUi() {
        initWidget(uiBinder.createAndBindUi(this));


    }
}
import com.google.gwt.core.client.gwt;
导入com.google.gwt.event.dom.client.ClickEvent;
导入com.google.gwt.event.dom.client.ClickHandler;
导入com.google.gwt.uibinder.client.uibinder;
导入com.google.gwt.user.client.ui.Composite;
导入com.google.gwt.user.client.ui.Widget;
导入com.google.gwt.uibinder.client.UiField;
导入com.google.gwt.user.client.ui.Button;
导入com.ohapp.helloweb.client.contacts.ContactsUi;
导入com.google.gwt.user.client.ui.SimplePanel;
公共类ExampleShell扩展了复合{
私有静态示例ShellUIBinder uiBinder=GWT
.create(ExampleShellUiBinder.class);
@UiField按钮btnHome;
@UiField按钮BTN触点;
@UiField SimplePanel内容面板;
接口示例ShellUIBinder扩展UiBinder{
}
公共示例shell(){
initWidget(uiBinder.createAndBindUi(this));
addClickHandler(新的ClickHandler(){
@凌驾
公共作废一次点击(点击事件){
//待办事项
}
});
btnContacts.addClickHandler(新的ClickHandler(){
@凌驾
公共作废一次点击(点击事件){
试一试{
SimplePanel=ExampleShell.this.getContentPanel();
面板。清除();
ContactsUi contacts=新ContactsUi();
面板。添加(联系人);
}捕获(例外情况除外){
System.out.println(例如getStackTrace());
}
}
});
}
公共SimplePanel getContentPanel(){
返回此.contentPanel;
}
公共void setContentPanel(SimplePanel contentPanel){
this.contentPanel=contentPanel;
}
}
我的ExampleShell.ui.xml如下所示:

import com.google.gwt.core.client.EntryPoint;
import com.google.gwt.user.client.ui.RootPanel;

public class AppDriver implements EntryPoint{

    private ExampleShell shell;

    @Override
    public void onModuleLoad() {
        shell = new ExampleShell();
        RootPanel.get().add(shell);

    }

}
import com.google.gwt.core.client.GWT;
import com.google.gwt.event.dom.client.ClickEvent;
import com.google.gwt.event.dom.client.ClickHandler;
import com.google.gwt.uibinder.client.UiBinder;
import com.google.gwt.user.client.ui.Composite;
import com.google.gwt.user.client.ui.Widget;
import com.google.gwt.uibinder.client.UiField;
import com.google.gwt.user.client.ui.Button;
import com.ohapp.helloweb.client.contacts.ContactsUi;
import com.google.gwt.user.client.ui.SimplePanel;

    public class ExampleShell extends Composite {

        private static ExampleShellUiBinder uiBinder = GWT
                .create(ExampleShellUiBinder.class);


        @UiField Button btnHome;
        @UiField Button btnContacts;
        @UiField SimplePanel contentPanel;

        interface ExampleShellUiBinder extends UiBinder<Widget, ExampleShell> {
        }

        public ExampleShell() {
            initWidget(uiBinder.createAndBindUi(this));

            btnHome.addClickHandler(new ClickHandler() {

                @Override
                public void onClick(ClickEvent event) {
                    //TODO
                }
            });

            btnContacts.addClickHandler(new ClickHandler() {

                @Override
                public void onClick(ClickEvent event) {
                    try{
                        SimplePanel panel = ExampleShell.this.getContentPanel();
                        panel.clear();
                        ContactsUi contacts = new ContactsUi();
                        panel.add(contacts);

                    } catch (Exception ex){
                        System.out.println(ex.getStackTrace());
                    }
                }
            });
        }

        public SimplePanel getContentPanel(){
            return this.contentPanel;
        }

        public void setContentPanel(SimplePanel contentPanel){
            this.contentPanel = contentPanel;
        }
    }
<!DOCTYPE ui:UiBinder SYSTEM "http://dl.google.com/gwt/DTD/xhtml.ent">
<ui:UiBinder xmlns:ui="urn:ui:com.google.gwt.uibinder"
    xmlns:g="urn:import:com.google.gwt.user.client.ui">
    <ui:style>
        .important {
            font-weight: bold;
        }
    </ui:style>
    <g:DockLayoutPanel>
        <g:north size="100.0">
            <g:FlowPanel>
                <g:Image width="80px" height="80px"/>
                <g:Button ui:field="btnHome">Home</g:Button>
                <g:Button ui:field="btnContacts">Contacts</g:Button>
            </g:FlowPanel>
        </g:north>
        <g:center>
            <g:SimplePanel ui:field="contentPanel"/>
        </g:center>


    </g:DockLayoutPanel>
</ui:UiBinder> 
import com.google.gwt.core.client.GWT;
import com.google.gwt.uibinder.client.UiBinder;
import com.google.gwt.user.client.ui.Composite;
import com.google.gwt.user.client.ui.Widget;


public class ContactsUi extends Composite {

    private static ContactsUiBinder uiBinder = GWT
            .create(ContactsUiBinder.class);

        interface ContactsUiBinder extends UiBinder<Widget, ContactsUi> {
    }

    public ContactsUi() {
        initWidget(uiBinder.createAndBindUi(this));


    }
}

.重要{
字体大小:粗体;
}
家
联络
直到这里一切都很好。尽管如此,当按下按钮btnContacts时,它应该将ContactsUi(扩展复合)添加到布局中,但我没有看到任何内容。它也不会抛出错误

ContactsUi类如下所示:

import com.google.gwt.core.client.EntryPoint;
import com.google.gwt.user.client.ui.RootPanel;

public class AppDriver implements EntryPoint{

    private ExampleShell shell;

    @Override
    public void onModuleLoad() {
        shell = new ExampleShell();
        RootPanel.get().add(shell);

    }

}
import com.google.gwt.core.client.GWT;
import com.google.gwt.event.dom.client.ClickEvent;
import com.google.gwt.event.dom.client.ClickHandler;
import com.google.gwt.uibinder.client.UiBinder;
import com.google.gwt.user.client.ui.Composite;
import com.google.gwt.user.client.ui.Widget;
import com.google.gwt.uibinder.client.UiField;
import com.google.gwt.user.client.ui.Button;
import com.ohapp.helloweb.client.contacts.ContactsUi;
import com.google.gwt.user.client.ui.SimplePanel;

    public class ExampleShell extends Composite {

        private static ExampleShellUiBinder uiBinder = GWT
                .create(ExampleShellUiBinder.class);


        @UiField Button btnHome;
        @UiField Button btnContacts;
        @UiField SimplePanel contentPanel;

        interface ExampleShellUiBinder extends UiBinder<Widget, ExampleShell> {
        }

        public ExampleShell() {
            initWidget(uiBinder.createAndBindUi(this));

            btnHome.addClickHandler(new ClickHandler() {

                @Override
                public void onClick(ClickEvent event) {
                    //TODO
                }
            });

            btnContacts.addClickHandler(new ClickHandler() {

                @Override
                public void onClick(ClickEvent event) {
                    try{
                        SimplePanel panel = ExampleShell.this.getContentPanel();
                        panel.clear();
                        ContactsUi contacts = new ContactsUi();
                        panel.add(contacts);

                    } catch (Exception ex){
                        System.out.println(ex.getStackTrace());
                    }
                }
            });
        }

        public SimplePanel getContentPanel(){
            return this.contentPanel;
        }

        public void setContentPanel(SimplePanel contentPanel){
            this.contentPanel = contentPanel;
        }
    }
<!DOCTYPE ui:UiBinder SYSTEM "http://dl.google.com/gwt/DTD/xhtml.ent">
<ui:UiBinder xmlns:ui="urn:ui:com.google.gwt.uibinder"
    xmlns:g="urn:import:com.google.gwt.user.client.ui">
    <ui:style>
        .important {
            font-weight: bold;
        }
    </ui:style>
    <g:DockLayoutPanel>
        <g:north size="100.0">
            <g:FlowPanel>
                <g:Image width="80px" height="80px"/>
                <g:Button ui:field="btnHome">Home</g:Button>
                <g:Button ui:field="btnContacts">Contacts</g:Button>
            </g:FlowPanel>
        </g:north>
        <g:center>
            <g:SimplePanel ui:field="contentPanel"/>
        </g:center>


    </g:DockLayoutPanel>
</ui:UiBinder> 
import com.google.gwt.core.client.GWT;
import com.google.gwt.uibinder.client.UiBinder;
import com.google.gwt.user.client.ui.Composite;
import com.google.gwt.user.client.ui.Widget;


public class ContactsUi extends Composite {

    private static ContactsUiBinder uiBinder = GWT
            .create(ContactsUiBinder.class);

        interface ContactsUiBinder extends UiBinder<Widget, ContactsUi> {
    }

    public ContactsUi() {
        initWidget(uiBinder.createAndBindUi(this));


    }
}
import com.google.gwt.core.client.gwt;
导入com.google.gwt.uibinder.client.uibinder;
导入com.google.gwt.user.client.ui.Composite;
导入com.google.gwt.user.client.ui.Widget;
公共类ContactsUi扩展了复合{
专用静态联系人uiBinder=GWT
.create(ContactsUiBinder.class);
接口ContactsUiBinder扩展了UiBinder{
}
公众联络{
initWidget(uiBinder.createAndBindUi(this));
}
}
ContactsUi.ui.xml如下所示:

<!DOCTYPE ui:UiBinder SYSTEM "http://dl.google.com/gwt/DTD/xhtml.ent">
<ui:UiBinder xmlns:ui="urn:ui:com.google.gwt.uibinder"
    xmlns:g="urn:import:com.google.gwt.user.client.ui">
    <ui:style>
        .backGroundPanel {
            background-color: #F60;
        }
    </ui:style>
    <g:DockLayoutPanel styleName="{style.backGroundPanel}">
        <g:center>
            <g:FlowPanel>
                <g:Label text="New Label" />
                <g:Button>Contacts</g:Button>
            </g:FlowPanel>
        </g:center>

    </g:DockLayoutPanel>


</ui:UiBinder> 

.背景小组{
背景色:#F60;
}
联络
我做错了什么


致以最诚挚的问候。

实现
RequiresResize
的小部件必须放在实现
providesize
的小部件中,或者指定一个明确的大小(最好以像素为单位)

在您的情况下,由于组合的根小部件是
DockLayoutPanel
,因此应该使用
ResizeComposite
而不是
composite
,使用
RootLayoutPanel
而不是
RootPanel

请参阅和中的“使用无根布局面板的布局面板”配方(您也可以在本页中阅读有关
RequiresResize
providesize
的更多信息)