Erste Gehversuche mit GWT

MayYes

Mitglied
Hallo allerseits,

ich spiele gerade ein wenig mit dem GWT rum und komm bei einem Fehler (besser Exception) nicht mehr weiter.

Ich habe eine Tabelle erzeugt (Grid(5,5)) und der Tabelle einen ClickListener hinzugefügt. Dieser soll bei der geklickten Zelle dann ein "x" setzen. Klappt alles wunderbar soweit. Nun öffne ich gleichzeitig eine DialogBox mit einem Button. Die Box hat noch keine Funktion. Wenn ich auf den Button "Test" klicke, dann schließt sich die DialogBox wieder. Das klappt beim ersten Mal auch ohne Probleme. Wenn ich dann zum 2. Mal eine Zelle anklicke, öffnet sich die DialogBox und er zeigt mir in deiner Konsole folgende Meldung:
"Uncaught Exception escaped"

Hab dann ein wenig nachgeschaut und herausgefunden, dass folgende Exception aufgetreten ist:

Caused by: java.lang.IllegalStateException: SimplePanel can only contain one child widget
at com.google.gwt.user.client.ui.SimplePanel.add(SimplePanel.java:67)

Jetzt komm ich nicht weiter. Hab keine Ahnung was das bedeutet und wie ich das behebe.
Hier mal mein Code:
Java:
package test.client;

import com.google.gwt.core.client.EntryPoint;
import com.google.gwt.event.dom.client.ClickEvent;
import com.google.gwt.event.dom.client.ClickHandler;
import com.google.gwt.user.client.ui.Button;
import com.google.gwt.user.client.ui.DialogBox;
import com.google.gwt.user.client.ui.Grid;
import com.google.gwt.user.client.ui.RootPanel;
import com.google.gwt.user.client.ui.TextBox;
import com.google.gwt.user.client.ui.VerticalPanel;
import com.google.gwt.user.client.ui.Widget;

public class TestObjekt implements EntryPoint {

	private Grid a = new Grid(5,5);
	private Button b = new Button("Test");
	private DialogBox c = new DialogBox();
	private VerticalPanel d = new VerticalPanel();
	
	public void onModuleLoad() {
		RootPanel.get("content").add(createTable());
	
	}

	private Widget createTable() {
		a.setBorderWidth(2);
		a.setCellSpacing(1);
		
	    for(int i = 0; i <= 4; i++)
	    	a.getCellFormatter().setWidth(0, i, "128px");
	    
	    a.addClickHandler(new ClickHandler(){
			public void onClick(ClickEvent event) {
				createDialogBox(a.getCellForEvent(event).getRowIndex(), a.getCellForEvent(event).getCellIndex());				
			}	
	    });
		return a;
	}
	
	private void createDialogBox(int row, int column){
		a.setText(row, column, "x");
		
		c.setText("Test DiaBox");
		c.setPixelSize(400, 100);
		c.center();
		
		d.setPixelSize(400, 100);
		d.add(b);
		
		b.addClickHandler(new ClickHandler() {
			
			public void onClick(ClickEvent event) {
				c.hide();			
			}
		});
		
		c.add(d);
		c.show();		
	}
}

Für jede Hilfe bin ich dankbar.

Liebe Grüße
MayYes
 
Zuletzt bearbeitet von einem Moderator:
S

Sym

Gast
Ich kenne mich mit GWT nicht aus, aber Du hast einen ClickHandler, der bei jedem Click ein neues Child hinzufügt und die Exception sagt mir, dass nur ein Child enthalten sein darf. :)
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
G Erste JSF anlegen Web Tier 6

Ähnliche Java Themen


Oben