Buscar

Unidade 2 - Manipulaçao de eventos - BOTÕES

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�

Continue navegando