GWT元素不可见

GWT元素不可见,gwt,intellij-idea,gxt,Gwt,Intellij Idea,Gxt,我已经在这里问了这样一个问题,但还没有得到一个可以解决的答复。解决这个问题对我来说真的很重要。因此,我尝试使用ExtGWT 2.3.0/GWT 2.5.1开发一个应用程序,但面临的问题是小部件(GWT和GXT)在浏览器中不可见。我已经尝试解决这个问题一个多星期了,但不幸的是我失败了。我已经尝试过的东西: 使用不同的GWT/GXT库(使用extgxt3.x不能解决问题) 使用Maven web app/gxt3+原型创建项目 在GWT下部署Tomacat/午餐项目 在GWT模块中使用不同的样式(

我已经在这里问了这样一个问题,但还没有得到一个可以解决的答复。解决这个问题对我来说真的很重要。因此,我尝试使用ExtGWT 2.3.0/GWT 2.5.1开发一个应用程序,但面临的问题是小部件(GWT和GXT)在浏览器中不可见。我已经尝试解决这个问题一个多星期了,但不幸的是我失败了。我已经尝试过的东西:

  • 使用不同的GWT/GXT库(使用extgxt3.x不能解决问题)
  • 使用Maven web app/gxt3+原型创建项目
  • 在GWT下部署Tomacat/午餐项目
  • 在GWT模块中使用不同的样式(如
  • 重写.css文件
  • Maven/GWT编译器编译项目
  • 清理所有相关临时目录(如Windows和Intellij IDEA)中的缓存文件
  • 使Maven的
    干净安装
  • 使用不同版本的浏览器(IE 8和11、Chrome、FF 24和36)
  • 尝试在有/没有GWT开发者插件的浏览器中使用午餐应用程序
  • 浏览互联网寻找解决方案(尤其是stackoverflow)
也许我遗漏了smth,但行动的清单相当大。 顺便说一下,我记录了操作,没有抛出任何错误或例外。如果我在.css中声明小部件的边框设置,它们的边框将可见,这证明小部件位于页面上。所以,如果有人遇到过这样的问题,或者可以提出一些建议,请让我知道。坦率地说,这对我很重要。请查看项目文件夹结构/设置的屏幕截图。先谢谢你

入口点-类

public class ProjectEntryPoint implements EntryPoint {
    @Override
    public void onModuleLoad() {
        Viewport viewport = new Viewport();
        final BorderLayout borderLayout = new BorderLayout();

        BorderLayoutData northData = new BorderLayoutData(Style.LayoutRegion.NORTH, 20);
        northData.setSplit(false);
        northData.setCollapsible(false);

        BorderLayoutData centerData = new BorderLayoutData(Style.LayoutRegion.CENTER);
        centerData.setCollapsible(false);

        BorderLayoutData westData = new BorderLayoutData(Style.LayoutRegion.WEST, 200, 150, 300);
        westData.setCollapsible(true);
        westData.setSplit(true);

        ContentPanel mainPanel = new ContentPanel();
        mainPanel.setStyleName("mainPanel");
        ContentPanel navPanel = new ContentPanel();
        mainPanel.setStyleName("navPanel");

        HTML headerHTML = new HTML();
        headerHTML.setHTML("<h1>RSS Reader</h1>");

        viewport.add(mainPanel, centerData);
        viewport.add(navPanel, westData);
        viewport.add(headerHTML, northData);
        viewport.setLayout(borderLayout);
        viewport.layout();
        RootPanel.get().add(viewport);
    } 
}
.mainPanel {
    border: 1px solid black;
}

.navPanel {
    border: 1px solid black;
}

这肯定不是答案,但您的代码中有一个输入错误:

    ContentPanel mainPanel = new ContentPanel();
    mainPanel.setStyleName("mainPanel");
    ContentPanel navPanel = new ContentPanel();
    mainPanel.setStyleName("navPanel");
我想最后一行应该在哪里

   navPanel.setStyleName("navPanel");

这似乎是缺少样式的问题-请仔细检查
gxt-all.css
是否可以从您在主机页中引用它的位置获得。使用浏览器的开发人员工具查看它是否没有抛出
404

似乎在与GXT 2.3捆绑的
setup.txt
文件中的步骤1中提到了缺少的资源:

  • 在Eclipse中创建一个GoogleWeb应用程序项目

    将下载中/resources文件夹的内容复制到war文件夹中的{foldername}位置。 用您为war文件夹中的资源创建的文件夹名替换{foldername}。

  • 将以下样式表添加到主机页

    <link rel="stylesheet" type="text/css" href="{foldername}/css/gxt-all.css" />
    
    
    
  • 如果您使用的是图表,请将以下脚本添加到主机页

  • <link rel="stylesheet" type="text/css" href="{foldername}/css/gxt-all.css" />
    
  • 将以下条目添加到项目模块xml文件中

    <inherits name='com.extjs.gxt.ui.GXT'/>
    
    
    
  • Eclipse设置(对于其他开发环境应该类似)。这些说明假定您有一个现有的项目和启动配置

  • 将gxt.jar添加到项目中
  • 将GXT jar添加到启动配置中

  • 我解决了这个问题。我不会说这是一个优雅的解决方案,但它是有效的。 如上所述,问题在于缺少.css文件,该文件定义了描述小部件样式的选择器(gxt all.css)。创建project时,请确保在project的webapp目录中显示以下文件夹和相关文件(如果使用Maven的web app原型):

    • 图表
    • css(包含gxt-all.css和gxt-grey.css)
    • 桌面
    • 闪光
    • 图像
    • 主题

    您可以在文件夹参考资料中的GXT安装存档中找到所有这些内容。要使用它,只需将所有文件夹放在项目中,并在宿主html中定义指向gxt all.css的路径。它适用于GXT 2.x。

    不要发布两次相同的问题来“引起注意”。编辑旧的,并添加一个赏金,以获得更多的眼睛在它。以后不要用重复的问题发垃圾邮件。我删除了旧问题,并通过描述问题和我解决问题的方法更新了一个问题。这不是要引起注意,而是要把有关这个问题的所有信息放在一个地方。我觉得它更清晰、更简洁。除了IE,你还试过其他浏览器吗?谢谢,艾美。这个问题的形式确实很好,我只是不希望其他问题被抛弃。现在来看看问题本身——边界显示出来了,所以有些东西起作用了。对于此类用例,我总是使用
    BorderLayoutContainer
    ,事件示例会这样做:。你能用它代替
    BorderLayout
    吗?谢谢,但是BorderLayoutContainer只在GXT 3.x中可用。我使用gxt2.3。我试图在3.x上更改lib,但没有成功。谢谢,但没有成功。我在上面帖子的评论中描述了问题的解决方案。我在上面的评论中以正确答案的形式写下了我们达成的解决方案,这样其他人就更容易找到这个问题。我明白了,谢谢。我想我已经找到了所有问题的根源。在正常工作的项目中,不仅有
    gxt-all.css
    ,还有许多图像,它们表示小部件的元素,如工具按钮、滚动元素等。在我的例子中,仅仅显示
    gxt-all.css
    是不够的。我只有一个问题——为什么在创建项目时,所有这些东西都不包含在web目录中。此外,我还从未见过任何关于gxt下的项目必须涉及的所有内容(gxt css、图像文件)的信息。我找到了有关
    resources
    文件夹的信息。希望这能把事情弄清楚(尽管我希望,像你一样,这一步应该是自动的…),谢谢!安装文件夹应该是第一个使用的位置
    <inherits name='com.extjs.gxt.ui.GXT'/>