2012-04-12 5 views
1

Ich habe derzeit Probleme mit GWT und Eclipse. In meiner aktuellen Implementierung, wenn ich> debugging as> web application ausführe, erhalte ich keine Widgets auf meiner html Seite, obwohl ich sie in ein div auf der Seite lade.GWT Java Widgets, die nicht auf dem angegebenen div erscheinen

In dem Bild können Sie meine Ordner-Organisation für dieses Projekt sehen. folder organization of project

Und der Code auf alle relevanten Dateien ist folgendes:

Anacom.gwt.xml

<?xml version="1.0" encoding="UTF-8"?> 

<module rename-to='AnacomGWT'> 

<inherits name='com.google.gwt.user.User' /> 

<inherits name='com.google.gwt.user.theme.standard.Standard' /> 

<entry-point class='pt.ist.anacom.presentationserver.client.AnacomGWT' /> 

<source path='client' /> 

</module> 

AnacomGWT.java

package pt.ist.anacom.presentationserver.client; 

import com.google.gwt.core.client.EntryPoint; 

public class AnacomGWT implements EntryPoint{ 

private VerticalPanel mainPanel = new VerticalPanel(); 

private HorizontalPanel inserePanel = new HorizontalPanel(); 
private TextBox numBox = new TextBox(); 
private Button numBtn = new Button(); 

private HorizontalPanel smsPanel = new HorizontalPanel(); 
private TextArea smsText = new TextArea(); 
private TextBox smsBox = new TextBox(); 
private Button smsBtn = new Button(); 

private HorizontalPanel saldoPanel = new HorizontalPanel(); 
private TextBox saldoBox = new TextBox(); 
private Button saldoBtn = new Button(); 

private HorizontalPanel modoPanel = new HorizontalPanel(); 
private Label modoId = new Label(); 
private Button desligadoBtn = new Button(); 
private Button ligadoBtn = new Button(); 
private Button silencioBtn = new Button(); 
private Button ocupadoBtn = new Button(); 

@Override 
public void onModuleLoad() { 

    // Assemble insereBox 
    inserePanel.add(numBox); 
    inserePanel.add(numBtn); 

    //assemble smsPanel 
    smsPanel.add(smsText); 
    smsPanel.add(smsBox); 
    smsPanel.add(smsBtn); 

    //assemble saldoPanel 
    saldoPanel.add(saldoBox); 
    saldoPanel.add(saldoBtn); 

    //assemble modoPanel 
    modoPanel.add(modoId); 
    modoPanel.add(desligadoBtn); 
    modoPanel.add(ligadoBtn); 
    modoPanel.add(silencioBtn); 
    modoPanel.add(ocupadoBtn); 

    //assemble mainPanel 
    mainPanel.add(inserePanel); 
    mainPanel.add(smsPanel); 
    mainPanel.add(saldoPanel); 
    mainPanel.add(modoPanel); 

    RootPanel.get("contents").add(mainPanel); 

    numBox.setFocus(true); 
} 

} 

Anacom.html

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"  "http://www.w3.org/TR/html4/loose.dtd"> 
<html> 
<head> 
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"> 
<title>Anacom</title> 
</head> 
<body> 

<h1>Anacom</h1> 
<div id="contents"></div> 

</body> 
</html> 

und schließlich

<?xml version="1.0" encoding="UTF-8"?> 
<!DOCTYPE web-app 
PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN" 
"http://java.sun.com/dtd/web-app_2_3.dtd"> 
<web-app> 
<welcome-file-list> 
    <welcome-file>Anacom.html</welcome-file> 
</welcome-file-list> 
</web-app> 

web.xml Wenn ich die Anwendung als Web-Anwendung ausführen, i in der Verbindung, kann ich nur sehen, die „ANACOM“, die in dem Tag, und keiner der Platten gewickelt i definierte auf anacomGWT.java, die auf der „Inhalt“ div erscheinen sollte, wie ich bin Aufruf mit:

RootPanel.get("contents").add(mainPanel); 

Jeder weiß, was mit meinem Code falsch?

Antwort

4

Ich habe keine Verbindung zwischen Ihrem HTML und GWT gefunden. Sie geben nicht an, welches gwt-Modul in Ihrer html-Seite verwendet wird (Anacom.html). Verwenden Sie

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"  "http://www.w3.org/TR/html4/loose.dtd"> 
<html> 
<head> 
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"> 
<title>Anacom</title> 
<script type="text/javascript" language="javascript" src="anacom/anacom.nocache.js"></script> 
</head> 
<body> 

<h1>Anacom</h1> 
<div id="contents"></div> 

</body> 
</html> 
+0

Ich tat das, aber immer noch keine Ergebnisse ... –

+0

Überprüfen Sie den kompilierten Javascript-Ordner und JS-Dateiname in dem Ordner mit dem Comipiled. In Ihrem Fall ist sein Krieg/anacom/anacom.nocache.js. Als ur Dateistruktur kann ich nur den Ordnernamen war/anacom/sehen. Es könnte anacom/Anacom.nochache.js sein. Bitte überprüfen Sie und ändern Sie diese Zeile entsprechend. ' ' – Shehzad

+0

War es in der Tat war/anacom/anacom.nocache.js, aber immer noch keine Ergebnisse = ( –

0

Vielleicht müssen Sie die Breite/Höhe von mindestens einem der Elemente/Panels einstellen?

Sie sollten eines der Entwickler-Tools in Ihrem Browser ausprobieren (nativ auf IE/chrome, Firebug on Fx) und sehen, welche Elemente tatsächlich im DOM erstellt werden. Dies wird einige sinnvolle Informationen zu Ihrem Debugging liefern.

+0

Ich habe Chrome-Entwickler-Tools verwendet, um die Elemente zu sehen, aber nur das Div erstellt. Nichts darin. Ich habe auch die Designansicht überprüft, und alle Widgets haben Breite und Höhe. –

0

Ist Ihr Browser-Unterstützung für Javascript aktiviert?

Verwandte Themen