Duvida sobre evento

4 respostas
V

Olá.

tenho a seguinte parte do código
botaoCriarTurma = new JButton("Criar Turma");
		botaoCriarTurma.addActionListener(new Turma());
		panel.add(mensagemCriarTurma);
		panel.add(botaoCriarTurma);
e um construtor da seguinte forma
public Turma() {
		this.materia = JOptionPane.showInputDialog("Digite a materia");
		String nome = JOptionPane.showInputDialog("Digite o nome do professor");
		String idade = JOptionPane
				.showInputDialog("Digite a idade do professor");

		int i = Integer.parseInt(idade);

		professor = new Professor(nome, (byte) i);

	}

Meu problema é, antes mesmo de o JFrame aparece quando inicio o main, o construtor já é inicializado, depois de colocar os dados que o JFrame aparece, então, como posso adicionar evento para quando o botão for clicado, uma nova turma ser criada?

Obrigado!

4 Respostas

F

Cria uma classe que ou extende MouseAdpater ou implementa MouseListener ou MouseMotionListener, dependendo do evento do mouse que vc quer gerar utilize o metodo apropriado: mousClicked(), mousePressed(), e executa a açao desejada dentro do metodo…

posta o codigo para a gente ver melhor…

F

desculpa, eh o ActionListener, vc precisa executar o metodo actionPerformed…

Nicolas_Fernandes

Opa, vitor2908!
É como o Freak disse:

Você quer criar um ActionListener para o seu botão. O ActionListener é uma interface; logo, para tal, você cria uma classe que implemente essa interface.
public class BotaoActionListener implements ActionListener {
}
Como você está "contratando" uma interface, você é obrigado a implementar os métodos contidos nela. No caso da interface ActionListener, há só o método actionPerformed.
public class BotaoActionListener implements ActionListener {

    public void actionPerformed(ActionEvent event) {
        JOptionPane.showMessageDialog(null, "Opa! Acionei o evento!");
    }
}
Como você quer que um botão faça a chamada deste evento, associe uma instância dessa classe ao ActionListener do botão.
JButton button = new JButton("Chamando o listener...");
button.addActionListener(new BotaoActionListener());

Faça o teste. Será exibida a mensagem contida dentro do ActionListener que implementamos para o botão.
É só você criar sua classe, implementar a interface ActionListener, fazer todo o processamento seu e seja feliz!

Espero ter ajudado.
Abraços, fique com Deus!

V

Obrigado galera, Nicolas, matou várias duvidas minha em uma cajadada só, muito obrigado!

Criado 28 de fevereiro de 2012
Ultima resposta 29 de fev. de 2012
Respostas 4
Participantes 3