Can you be a little more specific? On Oct 22, 2010, at 12:42 PM, Jérôme Serré wrote:
> The last question Greg. > When I create a new Component, how I do to display it in the windows. > > Thank you > Jérôme > > -----Message d'origine----- > De : Greg Brown [mailto:[email protected]] > Envoyé : vendredi 22 octobre 2010 14:37 > À : [email protected] > Objet : Re: To build a TablePane > > I think I see the problem. When an instance of TablePane.Row is created, it > is empty (i.e. it has length 0). Since TablePane#setCellComponent() calls > update() on the row, you get an IndexOutOfBounds exception because there is > no cell at that index to update. > > I had actually forgotten about this method, and it should probably be > removed from the platform for this reason. The best way to construct a > TablePane dynamically is to create all of your columns, then use the add() > method to create and populate the rows: > > > TablePane tablePane = new TablePane(); > > // Add 3 columns > TablePane.ColumnSequence columns = tablePane.getColumns(); > columns.add(new TablePane.Column()); > columns.add(new TablePane.Column()); > columns.add(new TablePane.Column()); > > TablePane.RowSequence rows = tablePane.getRows(); > > for (int i = 0; i < ROW_COUNT; i++) { > TablePane.Row row = new TablePane.Row(); > rows.add(row); > > for (int j = 0; j < columns.getLength(); j++) { > // Add cell for column j > } > } > > G > > On Oct 22, 2010, at 4:29 AM, Jérôme Serré wrote: > >> Hello, >> >> >> >> I try to build a TablePane dynamically but it doesn’t work ! >> >> As if the table had no rows and no columns. >> >> Someone could help me to find the error. >> >> Thanks >> >> >> >> >> >> Trace : >> >> nbCol: 3 >> >> nbLigne: 4 >> >> Rows: 4 >> >> Columns: 3 >> >> i: 2 >> >> j: 1 >> >> and the error : >> >> java.lang.IndexOutOfBoundsException: index 1 out of bounds. >> >> at >> > org.apache.pivot.collections.ArrayList.verifyIndexBounds(ArrayList.java:577) >> >> at >> org.apache.pivot.collections.ArrayList.get(ArrayList.java:346) >> >> at >> org.apache.pivot.wtk.TablePane$Row.update(TablePane.java:221) >> >> at >> org.apache.pivot.wtk.TablePane.setCellComponent(TablePane.java:914) >> >> at >> applet.Principale.buildHautDroit(Principale.java:552) >> >> >> >> TablePane hautDroit = new TablePane(); >> >> int nbCol = cb.getNbColonne(); >> >> int nbLigne = cb.getNbLigne(); >> >> >> >> System.out.println("nbCol: " + nbCol); >> >> System.out.println("nbLigne: " + nbLigne); >> >> >> >> for (int j=0; j<nbCol; j++) { hautDroit.getColumns().add(new >> TablePane.Column(1, true)); } >> >> for (int i=0; i<nbLigne; i++) { hautDroit.getRows().add(new > TablePane.Row(1, >> true)); } >> >> >> >> System.out.println("Rows: " + hautDroit.getRows().getLength()); >> >> System.out.println("Columns: " + hautDroit.getColumns().getLength()); >> >> >> >> ImageView im; >> >> for (int i=0; i<nbLigne; i++) { >> >> for (int j=0; j<nbCol; j++) { >> >> if (cb.getCase(i, j)!=null) { >> >> System.out.println("i: " + i); >> >> System.out.println("j: " + j); >> >> im = new ImageView(Image.load(cb.getCase(i, >> j).getVin().getImgCouleur())); >> >> im.getUserData().put(String.valueOf(i) + >> String.valueOf(j), cb.getCase(i, j)); >> >> ==è Error hautDroit.setCellComponent(i, j, im); >> >> } >> >> } >> >> } >> >> >> >> -- >> >> Cordialement >> >> Jérôme Serré >> >> >> >> >
