GWT元素不可见
我已经在这里问了这样一个问题,但还没有得到一个可以解决的答复。解决这个问题对我来说真的很重要。因此,我尝试使用ExtGWT 2.3.0/GWT 2.5.1开发一个应用程序,但面临的问题是小部件(GWT和GXT)在浏览器中不可见。我已经尝试解决这个问题一个多星期了,但不幸的是我失败了。我已经尝试过的东西: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模块中使用不同的样式(
- 使用不同的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)李>
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中提到了缺少的资源:
<link rel="stylesheet" type="text/css" href="{foldername}/css/gxt-all.css" />
<link rel="stylesheet" type="text/css" href="{foldername}/css/gxt-all.css" />
<inherits name='com.extjs.gxt.ui.GXT'/>
我解决了这个问题。我不会说这是一个优雅的解决方案,但它是有效的。 如上所述,问题在于缺少.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'/>