da provare...non so se è quello che volevi 
codice:
public void server_messaggio_TAB (String messaggio2)
{
System.out.println("LISTATAVOLI => "+messaggio2);
StringTokenizer listaTavoli = new StringTokenizer(messaggio2, "ÞØ»");
int totale = listaTavoli.countTokens();
System.out.println("COUNT => "+totale);
JButton tavoli[] = new JButton[totale];
tablePanel.removeAll();
for (tav=0; tav<totale; tav++)
{
System.out.println("Ci arrivo qua: "+tav);
tavoli[tav] = new JButton(listaTavoli.nextToken());
tavoli[tav].setSize(130, 20);
tavoli[tav].addActionListener(new MyActionListener(tav));
tablePanel.add(tavoli[tav]);
}
System.out.println("Ci arrivo qua");
}
/* inner class */
class MyActionListener implements ActionListener
{
private int tav;
MyActionListener(int tav){this.tav = tav;}
public void actionPerformed(ActionEvent ev)
{
messaggio = "/ADD " + tav;
setMessaggioInAttesa(true);
}
}