Permalänk
Medlem

Växla mellan paneler i GWT

Jag försöker skriva ett program i GWT som ska växla mellan två paneler när en knapp i panelen aktiveras. Jag får dock dessa fel när jag klickar på knappen:
http://www.ladda-upp.com/bilder/53823/felmeddelande-1
http://www.ladda-upp.com/bilder/53824/felmeddelande-2

Min kod är följande:

package com.test.client; import com.google.gwt.core.client.EntryPoint; import com.google.gwt.user.client.ui.RootPanel; import com.google.gwt.user.client.ui.VerticalPanel; import com.smartgwt.client.widgets.Button; import com.smartgwt.client.widgets.events.ClickEvent; import com.smartgwt.client.widgets.events.ClickHandler; import com.test.client.MyPanel; public class Testing implements EntryPoint { public void onModuleLoad() { final VerticalPanel startPanel = new VerticalPanel(); Button button = new Button("Click here"); button.addClickHandler(new ClickHandler() { public void onClick(ClickEvent event) { RootPanel.get("content").clear(); MyPanel myPanel = new MyPanel(RootPanel.get("content"), startPanel); } }); startPanel.add(button); RootPanel.get("content").add(startPanel); } }

package com.test.client; import com.google.gwt.user.client.ui.Panel; import com.google.gwt.user.client.ui.VerticalPanel; import com.google.gwt.user.client.ui.Widget; import com.smartgwt.client.widgets.Button; import com.smartgwt.client.widgets.events.ClickEvent; import com.smartgwt.client.widgets.events.ClickHandler; public class MyPanel extends Widget{ public MyPanel(final Panel content, final VerticalPanel startPanel){ VerticalPanel newPanel = new VerticalPanel(); Button button2 = new Button("Return"); button2.addClickHandler(new ClickHandler() { public void onClick(ClickEvent event) { content.clear(); content.add(startPanel); } }); newPanel.add(button2); content.add(newPanel); } }

Jag använder mig utav extrabiblioteket smartGWT.

Jag har även exporterat projektet från Eclipse:
http://www.megaupload.com/?d=UJN554QR

Permalänk
Medlem

Om det inte finns någon som vill rätta min kod så kanske det finns någon som har en exempel kod där man kan använda add(), clear() och remove() på en Panel utan att man får "Unable to get value of property 'currentStyle': object is null or undefined"?
Jag har googlat efter exempel kod för det men hittar inget.

Permalänk
Medlem

Har inte SDKn å så installerat å d var ett tag sen jag satt med GWT. Men har du testat instansiera de två panelerna för att sedan lägga till dem med RootPanel.get().add(panelref); och sedan använda dig av panelref.setVisible(true/false); vid knappeventet för att bestämma vilken som syns?
Antar att du fått igång första tutorial koden så du vet att d funkar rent generellt så det inte är nå annat fel.

Visa signatur

Spelrigg: 800D| i7 3930K@4,7 GHz - Custom WC | 32 GB Kingston HyperX Beast | 7970 GHz X-Edition |1x30 Dell U3011, 2x27" | Sennheiser HD650 | Xonar Essence STX |
Laptop: G74SX 17,3" 120 Hz 3D |
Server: Phenom II X4 955BE | Corsair XMS3 8 GB | 16 HDDs, 27 TB |
HTPCs: ASUS EEE Box 1.8 Ghz | Blu-Ray | OCZ Vertex 2 60 GB | 4 GB RAM |

Permalänk
Medlem
Skrivet av Gnejs:

Har inte SDKn å så installerat å d var ett tag sen jag satt med GWT. Men har du testat instansiera de två panelerna för att sedan lägga till dem med RootPanel.get().add(panelref); och sedan använda dig av panelref.setVisible(true/false); vid knappeventet för att bestämma vilken som syns?
Antar att du fått igång första tutorial koden så du vet att d funkar rent generellt så det inte är nå annat fel.

I kodexemplet jag skickade med så fungerar det med .setVisisible(), men i mitt riktiga program kan jag inte använda .setVisible() för att widget:arna tar upp plats fast de är osynliga.
Jag provade att ändra den ärvda klassen till Layout istället för Widget, och då kunde jag använda addMember() och removeChild(), men när jag gör så får jag ett exception som inte fångas upp när jag försöker lägga till en FlexTable med addMember().