Ação do JButton

3 respostas
N
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 

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

Desde já mutio obrigada aos que tentarem ajudar…

3 Respostas

OliveirakunJava
Espero que isso te ajude:
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;

//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();
	}
}
Tsunami1

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.

espero ter ajudado.

N

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…

Criado 2 de novembro de 2008
Ultima resposta 3 de nov. de 2008
Respostas 3
Participantes 3