You just need to call setView() on the ScrollPane, passing your TablePane 
instance. You don't need to call repaint().

On Oct 22, 2010, at 1:11 PM, Jérôme Serré wrote:

> I would like put it in the view and refresh the screen
> 
> 
> In code :
> tp = new TablePane();
> fillTablePane(tb);
> sp.add(tp);
> sp.repaint(); or window.repaint();
> ????
> 
> 
> The wtkx:
> <Window>
> ..../...
> <ScrollPane wtkx:id="sp" verticalScrollBarPolicy="fill_to_capacity"
> horizontalScrollBarPolicy="fill">
>       <view> 
>               [The location of the TablePane]
>       </view>
> </ScrollPane>
> ..../....
> <Window>
> 
> 
> 
> -----Message d'origine-----
> De : Greg Brown [mailto:[email protected]] 
> Envoyé : vendredi 22 octobre 2010 18:47
> À : [email protected]
> Objet : Re: To build a TablePane
> 
> 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é
>>> 
>>> 
>>> 
>>> 
>> 
> 

Reply via email to