So habe ich ein Programm in gwt, das mehrere Bilder auf der rechten Seite auflistet und wenn man über einen davon schwebt, werden einige zusätzliche Informationen in einem benutzerdefinierten Widget auf der linken Seite angezeigt, einschließlich eines Teils davon das Bild und ein spezieller Hintergrund, der ein Teil eines größeren Hintergrundbildes ist, für das Widget abhängig vom Bild.SetVisibleRect vermasselt das Bild (gwt)
Bis jetzt funktioniert alles gut und beide Bilder werden grundsätzlich korrekt angezeigt. Das Hintergrundbild hat jedoch das "broken image" -Icon in der oberen linken Ecke, obwohl es perfekt angezeigt wird und auch aktualisiert wird, wenn ich über ein anderes Bild auf der rechten Seite schwebe. Was wirklich wichtig ist, ist, dass der Teil des Bildes, über dem ich schwebte, nur einen Bruchteil einer Sekunde angezeigt wird, bevor das Hintergrundbild geladen wird, weil das Hintergrundbild das andere Bild überdeckt. Wird der Hintergrund weggelassen, wird der Bildbereich normal angezeigt, aber auch das "gebrochene Bild". Wenn Sie setVisibleRect() auf beiden Bildern nicht verwenden, funktioniert alles einwandfrei, aber die angezeigten Bilder sind natürlich falsch. Bisher ist dies mein Code aus dem benutzerdefinierten Widget den gewünschten Teil des Bildes zu zeigen, dass schwebt über wurde:
public void setBild(Image bild) {
this.bild.setUrl(bild.getUrl());
this.bild.setVisibleRect(38,61,134,94);
this.bild.getElement().getStyle().setZIndex(2);
}
wo this.bild ist ein Bild in meiner benutzerdefinierten Widget.
Auch in dem Verfahren, die den Hintergrund auf ein paar Informationen basieren bekommt ich habe, dass:
if(!hintergrund.isAttached()){
this.add(hintergrund);
this.setWidgetLeftWidth(hintergrund, 0, Unit.PX, 230, Unit.PX);
this.setWidgetTopHeight(hintergrund, 0, Unit.PX, 650, Unit.PX);
}
if(k.getFarbe().equals("rot")) hintergrund.setVisibleRect(460, 0, 230, 650);
if(k.getFarbe().equals("hell")) hintergrund.setVisibleRect(230, 0, 230, 650);
if(k.getFarbe().equals("braun")) hintergrund.setVisibleRect(0, 0, 230, 650);
if(k.getFarbe().equals("grun")) hintergrund.setVisibleRect(0, 650, 230, 650);
if(k.getFarbe().equals("grau")) hintergrund.setVisibleRect(230, 650, 230, 650);
if(k.getFarbe().equals("lila;braun")) hintergrund.setVisibleRect(460, 650, 230, 650);
hintergrund.getElement().getStyle().setZIndex(1);
wo Hintergrund das Hintergrund-Bild ist.
Wenn ich über ein Bild bewegen, mein comiler gibt mir die Nachricht
[WARN] 404 - GET /labyrinthweb/clear.cache.gif (127.0.0.1) 1393 bytes
Request headers
Host: 127.0.0.1:8888
User-Agent: Mozilla/5.0 (Windows NT 6.1; rv:46.0) Gecko/20100101 Firefox/46.0
Accept: image/png,image/*;q=0.8,*/*;q=0.5
Accept-Language: en-US,en;q=0.5
Accept-Encoding: gzip, deflate
Referer: http://127.0.0.1:8888/LabyrinthWeb.html
Cookie: optionen=310; JSESSIONID=vyr356eyxfph1lzazwqw8rkn8
Connection: keep-alive
Response headers
Content-Type: text/html;charset=ISO-8859-1
Cache-Control: must-revalidate,no-cache,no-store
Content-Length: 1393
erklärte ich auch
<script type="text/javascript" language="javascript"
src="labyrinthweb/labyrinthweb.nocache.js"></script>
in meiner HTML-Datei umbenannt und mein Modul in meinem * .gwt labyrinthweb .xml-Datei.
Kann mir jemand da draußen helfen?