Duvida

ae pessoal…

tenho o seguinte codigo q declara JButtons de 1 a 9:

String nomes[] = {1,2,3,4,5,6,7,8,9};
JButton b[];

b = new JButton[nomes.length];

for(i = 0; i < nomes.length; i++)
{
  b[i] = new JButton(nomes[i]);
 }

c.add(b[i]);

ai o q eu quero fazer é o seguinte: eu quero q ao apertar o botao 2 por exemplo, apareca num JTextField o numero 2…e assim por diante…ja tentei varios jeitos de fazer e nao, consegui…todos os jeitos q eu consegui aparecia o numero 9 no JTextField…independentemente do botao clicado

flww

Voce pode tentar algo como

final String nomes[] = {1,2,3,4,5,6,7,8,9}; 
 for (int i = 0; i < nomes.length; i++) {
    JButton b = new JButton(nomes[i]);
    b.addMouseListener(new MouseAdapter() {
        public void mouseClicked(MouseEvent e) {
            teuTextField.setText(nomes[i]);
        }
    });

    b[i] = b;
}

Assim, qdo vc clicar no botoa, ele vai receber o numero correspondente ao index dele.

Rafael

rpz…nao funfou nao…ele diz q a variavel I nao pode ser acessada =/

É porque, como está acontecendo a criação de uma classe anônima, as variáveis usadas dentro de métodos redefinidos (mouseClicked, no caso) devem ter valores conhecidos…tente:

final String nomes[] = {1,2,3,4,5,6,7,8,9};
for (int i = 0; i < nomes.length; i++) {
    JButton b = new JButton(nomes[i]);
    final int j = i;
    b.addMouseListener(new MouseAdapter() {
        public void mouseClicked(MouseEvent e) {
            teuTextField.setText(nomes[j]);
        }
    });

    b[i] = b;
}

ae…vlw pela a forca…mas tb nao funcionou nao hehehee

final String nomes[] = {1,2,3,4,5,6,7,8,9}; for (int i = 0; i < nomes.length; i++) { JButton b = new JButton(nomes[i]); final int j = i; b.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { textFieldQueVoceDeclarouEmAlgumLugarAnteriormente.setText(nomes[j]); } }); b[i] = b; }