Baixe o app para aproveitar ainda mais
Prévia do material em texto
TRATAMENTO DE EVENTOS PARA INTERFACES GRÁFICA EVENTOS DE BOTÕES package control; import java.awt.AWTEvent; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import javax.swing.JButton; import javax.swing.JFrame; @SuppressWarnings("serial") public class EventoBotao extends JFrame { private JButton botao01; public EventoBotao() { super("EVENTO COM BOTÃO - PROF. EDIBERTO MARIANO"); botao01 = new JButton("Para sair do sistema Clique aqui com o mouse"); //ActionListener botao01.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { buttonAction(e); } }); add(botao01); setVisible(true); setSize(800, 200); //800 DE LARGURA E 300 E ALTURA setLocationRelativeTo(null); //CENTRALIZA A INTERFACE NO VÍDEO //setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); } //O click no botão vai invocar esse método private void buttonAction(AWTEvent e) { System.out.println("Sistema finalizado a partir do click no botão"); System.exit(0); } public static void main(String[] args) { new EventoBotao(); } } SAÍDA OUTROS EXEMPLOS import java.awt.Font; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import javax.swing.JButton; import javax.swing.JFrame; public class Evento001 implements ActionListener { private JButton botao; public void janela(){ JFrame frame = new JFrame(); botao = new JButton(); //REGISTRA O EVENTO AO BOTÃO botao.addActionListener(this); //ADICIONA O BOTÃO NO FRAME frame.getContentPane().add(botao); //frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); frame.setSize(600,200); frame.setVisible(true); } @Override public void actionPerformed(ActionEvent evento) { botao.setText("Botão foi clicado!"); //ALTERA A FONTE botao.setFont(new Font("SansSerif", Font.BOLD, 20)); } public static void main(String[] args) { Evento001 captura = new Evento001(); captura.janela(); } } SAÍDA CRIAÇÃO DE BOTÕES E APLICAÇÃO DE EVENTOS - CLASSES ADAPTADORAS/INTERNA - JFRAME CLASSE CONSTRUTURA package control; import java.awt.FlowLayout; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import javax.swing.JButton; import javax.swing.JFrame; import javax.swing.JOptionPane; //PARA CLASSE SERIALIZABLE, no caso Evento2, salva o estado do objeto para ser usado no futuro, //neste exemplo, O QUE ESTÁ ESCRITO DENTRO DOS BOTÕES. @SuppressWarnings("serial") public class Evento2 extends JFrame{ private JButton botao1; private JButton botao2; //BUTTONFRAME ADICIONA JBUTTONS AO JFRAME public Evento2() { super("Testando eventos nos Botões"); setLayout(new FlowLayout()); //CONFIGURA O LAYOUT DE FRAME botao1 = new JButton("Primeiro Botão"); //BOTÃO COM TEXTO add(botao1); //ADICIONA botao1 AO JFRAME botao2 = new JButton("Segundo Botão"); add(botao2); //ADICIONA botao2 AO JFRAME //CRIA NOVO BUTTON HANDLER PARA TRATAMENTO DE EVENTO DE BOTÃO //O HANDLER FAZ SER EXIBIDO O QUE ESCRITO DENTRO DO BOTÃO ButtonHandler handler = new ButtonHandler(); botao1.addActionListener(handler); botao2.addActionListener(handler); } //CLASSE INTERNA PARA TRATAMENTO DOS BOTÕES public class ButtonHandler implements ActionListener { //TRATA EVENTO DO BOTÃO public void actionPerformed(ActionEvent event) { JOptionPane.showMessageDialog(Evento2.this, String.format("Você pressionou: %s", event.getActionCommand())); } } } No código acima foi criada uma classe interna chamada ButtonHandler. Uma classe interna é criada para capturar os eventos de dois ou mais componentes diferentes. A classe interna pode usar todos os métodos e variáveis da classe externa. CLASSE INSTANCIADORA package model; import control.Evento2; public class TesteEvento2 { public static void main(String[] args) { Evento2 eventoFrame = new Evento2(); // Evento2.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); eventoFrame.setSize(300, 110); eventoFrame.setVisible(true); } } SAÍDA CALCULADORA package control; import javax.swing.*; import java.awt.BorderLayout; import java.awt.Button; import java.awt.Color; import java.awt.Frame; import java.awt.GridLayout; import java.awt.Label; import java.awt.Panel; import java.awt.event.*; // Incio classe Calculadora public class Calculadora extends WindowAdapter { // criando o Frame Frame frm1 = new Frame("Calculadora"); // criando o Panel Panel pnl1 = new Panel(new GridLayout(4,4)); //4 linha de botões e 4 colunas // criando os Botoes. private Button botaoLimpar = new Button("Clr"); private Button botaoSomar = new Button("+"); private Button botaoResultado = new Button("="); // Criando o Visor private Label label1 = new Label("Numero 1"); private Label label2 = new Label("Numero 2"); private Label label3 = new Label("Resultado"); private Label labelautor = new Label("PROF.EDIBERTO MARIANO"); private JTextField txtF1 = new JTextField(10); //tamanho da caixa de texto private JTextField txtF2 = new JTextField(10); //tamanho da caixa de texto private JTextField txtF3 = new JTextField(10); //tamanho da caixa de texto // variaveis de valor private float valor1 = 0; // Variavel de Operacao private int operacao = 0; public void setValor1() { this.valor1 = Float.parseFloat(txtF1.getText()); } public float getValor1() { return valor1; } public Calculadora() { frm1.addWindowListener(new WindowAdapter() { public void windowClosing(WindowEvent a) { System.exit(0); } public void windowOpened(WindowEvent a) { label1.setBounds(20,40,80,30); //posição do label Primeiro numero: COLUNA 20, LINHA 40, tamanho 80 txtF1.setBounds(20,60,50,30); //posição da caixa de texto: COLUNA 20, LINHA 60 label2.setBounds(20,90,80,30); //posição do label Segundo numero: COLUNA 20, LINHA 40, tamanho 80 txtF2.setBounds(20,110,50,30); //posição da caixa de texto: COLUNA 110, LINHA 60 label3.setBounds(20,140,80,30); //posição do label Resultado: COLUNA 20, LINHA 40, tamanho 80 txtF3.setBounds(20,160,50,30); //posição da caixa de texto: COLUNA 160, LINHA 60 labelautor.setBounds(20,220,170,30); //posição do label AUTOR: COLUNA 20, LINHA 200, tamanho 200 txtF1.requestFocus(); } }); botaoLimpar.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent a) { valor1 = 0; txtF1.setText(""); txtF2.setText(""); txtF3.setText(""); label3.setText("RESULTADO"); } }); botaoSomar.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent a) { setValor1(); operacao = 1; } }); botaoResultado.addActionListener(new ActionListener() { public void actionPerformed(ActionEventa) { txtF3.setText(txtF1.getText()); switch (operacao) { //somar case 1 : { label3.setText("SOMA"); //SE FOR SOMA ALTERA O LABEL DE RESULTADO PARA SOMA txtF3.setText("0"); txtF3.setText(Float.toString(getValor1() + Float.parseFloat(txtF2.getText()))); //Transforma em real break; } default : System.out.println("Escolha uma operação"); break; } } }); frm1.setSize(250,290); // tamamho do Frame frm1.setLocation(450,300);// posiciona na tela frm1.setBackground(Color.gray);// Muda a Cor de Fundo // Adicionando o Visor no Frame frm1.add(txtF1,BorderLayout.EAST); //O FRAME FICA NA PARTE DA ESQUERDA DA JANELA frm1.add(label1,BorderLayout.WEST); //O LABEL1 FICA NA PARTE DA DIREITA DA JANELA frm1.add(label2,BorderLayout.WEST); //O LABEL2 FICA NA PARTE DA DIREITA DA JANELA frm1.add(label3,BorderLayout.WEST); //O LABEL3 FICA NA PARTE DA DIREITA DA JANELA frm1.add(txtF1,BorderLayout.WEST); //O FRAME FICA NA PARTE DA DIREITA DA JANELA frm1.add(txtF2,BorderLayout.WEST); //O FRAME FICA NA PARTE DA DIREITA DA JANELA frm1.add(txtF3,BorderLayout.WEST); //O FRAME FICA NA PARTE DA DIREITA DA JANELA frm1.add(labelautor,BorderLayout.WEST); //O LABEL3 FICA NA PARTE DA DIREITA DA JANELA // Adicionando os Botoes no Panel pnl1.add(botaoSomar); pnl1.add(botaoResultado); pnl1.add(botaoLimpar); //Adicionando Panel no Frame frm1.add(pnl1); //Habilita mostrar o frame // sempre deixa-la como ultima linha!! frm1.setVisible(true); } public static void main(String [] args) { new Calculadora(); } }// fim classe Calculadora SAÍDA �PAGE � �PAGE �7�
Compartilhar