E aí galera, beleza?
Estou com dúvidas sobre eventos de botão. Utilizei o ActionListener em sala de aula. Criei uma classe ouvinte para os botões, mas quando cheguei em casa, não consegui acertar como fazer. Pesquisei em diversos sites, e cada um fala de uma forma diferente, complicando cada vez mais o meu entendimento. Eu queria saber se alguém pode me ajudar nessa dúvida.
Bom, eu criei uma classe onde fica minha janela, é uma tela simples de login, na qual desejo fazer uma verificação através de “if / else”. Criei outra, onde coloquei o método main, apenas para testar a janela. Eu não consegui adicionar o evento ao botão. Criei uma classe ouvinte, mas não consigo fazer com que o botão apresente algum comportamento após o clique.
Segue abaixo as classes que criei.
Classe da janela
[code]package br.com.telas;
import java.awt.BorderLayout;
import java.awt.GridLayout;
import javax.swing.BorderFactory;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JTextField;
import javax.swing.border.TitledBorder;
public class TelaLogin{
public void novaJanela(){
//instâncias de frames, layots e panels
JFrame janelaLogin = new JFrame("Login");
GridLayout grid = new GridLayout(3, 2);
BorderLayout border = new BorderLayout();
JPanel painelLogin = new JPanel(grid);
JPanel painelPrincipal = new JPanel(border);
TitledBorder bordaLogin = new TitledBorder(BorderFactory.createLoweredBevelBorder(), "Informações do usuário", 1, 1);
//instância de componentes
JLabel lblNome = new JLabel("Usuário");
JLabel lblSenha = new JLabel("Senha");
JTextField txtLogin = new JTextField();
JTextField txtSenha = new JTextField();
JButton btoLogin = new JButton("Login");
JButton btoCancel = new JButton("Cancelar");
//métodos do frame e panel
janelaLogin.setSize(300, 100);
janelaLogin.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
painelLogin.setBorder(bordaLogin);
//adição de componentes ao panel e ao frame
janelaLogin.add(painelLogin);
painelLogin.add(lblNome);
painelLogin.add(txtLogin);
painelLogin.add(lblSenha);
painelLogin.add(txtSenha);
painelLogin.add(btoLogin);
painelLogin.add(btoCancel);
janelaLogin.setVisible(true);
}
}[/code]
Classe para teste
[code]package br.com.telas;
public class TestaLogin {
public static void main(String[] args) {
TelaLogin refLogin = new TelaLogin();
refLogin.novaJanela();
}
}
[/code]
Classe ouvinte
[code]package br.com.controle;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JFrame;
import javax.swing.JOptionPane;
public class OuvinteBotao extends JFrame implements ActionListener {
@Override
public void actionPerformed(ActionEvent e) {
JOptionPane.showMessageDialog(null, "Seja bem vindo!");
}
}[/code]
Eu queria saber como inserir isso na classe da janela de forma que ao clicar no botão ele mostre essa mensagem. E se possível, gostaria de saber como posso fazer uma verificação usando if e else para que ele retorne uma mensagem diferente caso o que for digitado no campo não seja igual.
Uma última dúvida:
É possível criar na classe ouvinte métodos ou classes internas que definam comportamentos para diferentes botões ou eu terei que cria separadamente uma classe pra cada evento de botão?
Desde já, obrigado e desculpe pelo enorme tópico ^^