Boa tarde, sou iniciante no java e preciso terminar um projeto da faculdade. É um sistema para desktop em java swing para jogos de mega-sena, paira efetuar os jogos criei um tela onde aparece 60 botões e cada vez que um for apertado deve ser incluído dentro de um textField. criei os botões dentro de um vetor mas o problema esta sendo em capturar a ação desses botões. Segue o trecho dos códigos, se alguém piuder me ajudar agradeço desde já…
Aqui crio os botões e adiciono eles ao panel:
JButton botoes[] = new JButton[60];
for (int i = 0; i < 60 ; i++) {
botoes[i] = new JButton("" + (i + 1) + “”);
botoes[i].addActionListener(this);
panel1.add(botoes[i]);
}
panel.add(panel1, BorderLayout.CENTER);
Aqui segue a minha tentativa de capturar a ação dos mesmos:
for(int i = 0; i > 60; i++){
if (e.getSource() == botoes[i]){
botoes[i].setEnabled(false);
}
} //pra fazer um teste tentei desabilitar o botão que foi clicado mas também não funcionou, o que preciso realmente é que ao capturar a ação seja incluido no textefield o número do indice do vetor, se o botão 1 for pressionado no jtextfield aparece 01 e assim por diante…
//implemente a interface ActionListener para ouvir os eventos
public class Botao extends JFrame implements ActionListener{
//declarando os componentes do Frame
private JButton btn1;
private JButton btn2;
private JTextField txt;
public Botao(){
//instanciando os botões
btn1=new JButton("Botao 1");
btn2=new JButton("Botao 2");
txt=new JTextField(15);
//adicionando o ouvinte aos botões
btn1.addActionListener(this);
btn2.addActionListener(this);
JPanel painel2=new JPanel();
painel2.add(txt);
JPanel painel1=new JPanel();
painel1.add(btn1);
painel1.add(btn2);
add(painel2,"North");
add(painel1,"Center");
setVisible(true);
pack();
setDefaultCloseOperation(EXIT_ON_CLOSE);
}
//método que trata os eventos
public void actionPerformed(ActionEvent evt) {
Object obj=evt.getSource();
if(obj==btn1){
txt.setText("Foi pressionado o botão 1");
}
if(obj==btn2){
txt.setText("Foi pressionado o botão 2");
}
}
public static void main(String[] args){
new Botao();
}
Bom, digamos uma variavel String de nome botoesSelecionados e um JTextField pra armazenar os botoes selecionados…
String botoesSelecionados = " ";
JTextField area = new JTextField(botoesSelecionados);
agora dentro do tratamento do seu evento é só colocar:
botoesSelecionados += e.getSource().toString(); // adiciona o botao clicado na variavel sem perder os antigos
area.setText(botoesSelecionados); // reconfigura o textfield.
Boa tarde…
Agradeço pela ajuda mas o erro no meu código tava só no sinal ao invés de menor (<), tinha colocado o maior (>) e ai ele nunca entrava no for…
De qualquer forma obrigada a todos que coloboraram…