Adding User Interaction

Documentos relacionados
Programação Gráfica em Java.

Interfaces Gráficas (GUIs) em Java usando Swing Parte I - O básico

Prof. Rogério Albuquerque de Almeida. Programação Orientada a Objetos II Java Nona aula

Programação Java. Construção de Interface gráfica. Processo Básico: OO + Eventos. Exemplo

INF1337 LINGUAGEM DE PROGRAMAÇÃO ORIENTADA A OBJETOS

Manipulando Eventos em Java

. Uma instância da classe JTextField gera uma instância da classe ActionEvent quando o objecto está activo e o utilizador pressiona a tecla ENTER.

MÓDULO 4 SWING Parte 3

Tratamento de Eventos

Exercício 1: Criar um programa que utiliza que desenha uma interface gráfica tal como descrito na Figura 1.1.

Elaborando as Interfaces Aulas 43, 44 e 45

Objectivos:. Construir programas com interfaces gráficas Graphical User Interface (GUI) application programs

Elaborando as Interfaces Aulas 31, 32 e 33

Aula 2 Even e to t s d o M ouse

Introdução à Programação Gráfica em Java

Módulo 7. Interface Gráfica com o Usuário GUI - Introdução. Programação Orientada a Objetos I Java (Rone Ilídio)

Elaborando Interfaces. Prof. André Aparecido da Silva Disponível em: Aulas 16, 17, e 18

Aula 12 POO 1 Interface Gráfica no Java. Profa. Elaine Faria UFU

A classe JTextField

Componentes GUI A aparência e maneira como um usuário pode interagir com componentes AWT diferem de acordo com a plataforma. Componentes Swing permite

Componente JOptionPane Layout Null Tratamento de Eventos. Action Listener

Aula 4. TECNOLOGIA EM ANÁLISE E DESENVOLVIMENTO DE SISTEMAS 2014 Marcelo Henrique dos Santos -

4 TECNOLOGIA EM ANÁLISE E DESENVOLVIMENTO DE SISTEMAS

Interfaces Gráficas com Swing. Professor Leonardo Larback

Swing. Page 1. Swing. Prof. Anderson Augustinho Uniandrade

Lista de Exercícios da disciplina Aplicações de Linguagem de Programação Orientada a objetos

Principais Classes Swing AWT

JAVA. Marcio de Carvalho Victorino. Interface Gráfica em Java (GUI)

Arquitetura de Tratamento de Eventos em Programas com GUI - Graphical User Interface

(INFORMAÇÕES PARA LABORATÓRIOS VIRTUAIS) Nome do laboratório: Laboratório de Programação (INFORMAÇÕES PARA FERRAMENTA)

Desenvolvimento de Aplicações Desktop

Interface gráfica em Java: Swing e SWT

HABILITANDO A IDE DO ECLIPSE

Universidade Federal de Uberlândia Faculdade de Computação Programação Orientada a Objetos II Prof. Fabiano Dorça. Padrão Observer (Observador)

Programação Orientada a Objetos

Java AWT Objectos e Eventos. Label Button TextField Checkbox RadioButton Combobox

Aplicação Linguagem de Programação Orientada a Objeto

JFrame. JLabel : Utilizado como rótulo para exibição de texto e ícones. Interface Gráfica de JAVA - Graphical User Interface (GUI)

Exemplo Threads com Swing:

Tecnólogo em Análise e Desenvolvimento de Sistemas

Sabemos que a classe é responsável por definir a estrutura e o comportamento de seus objetos. Portanto, os objetos são instâncias das classes.

Técnicas de Programação II

COM220 Aula 17: Interface Gráfica Containers Swing

Programação III. Interface Gráfica - Swing. Interface Gráfica Swing Jocélio Passos joceliodpassos@bol.com.br. Interface Gráfica - Swing

PROGRAMAÇÃO ORIENTADA A OBJETOS -INTERFACES GRÁFICAS. Prof. Angelo Augusto Frozza, M.Sc. frozza@ifc-camboriu.edu.br

Layout. Programação Orientada a Objetos Java. Prof. Geraldo Braz Junior. Baseado em material original de João Carlos Pinheiro CEFET/MA

Crie dois pacotes: jogo e imagens Coloque as imagens da cobra, da fruta e da parede no pacote imagens Crie uma nova classe chamada Cobra no pacote

1) Responda de acordo com os conceitos de orientação a objetos (0,5).

Programação Orientada a Objetos II

Java - Swing. Raphaela Galhardo raphaela@j2eebrasil.com.br

UNIP - Ciência da Computação e Sistemas de Informação. Estrutura de Dados. AULA 5 Pilhas

UNIVERSIDADE FEDERAL DO PARANÁ. CURSO: Ciência da Computação DATA: / / 2013 PERÍODO: 4 o.

package br.com.cadastro.visao;

Is Event Dispatcher Threade (Animation)

PROGRAMAÇÃO ORIENTADA A OBJETOS. Aula 4- Tratamento de Eventos em Interfaces Gráficas

Roteiro. Introdução. Uma Introdução à Programação Orientada a Objetos e JAVA usando NetBeans. Objetos. Princípios da Orientação a Objetos

Interfaces Gráficas POO. Prof. Márcio Delamaro

private void btapresentanomeactionperformed(java.awt.event.actionevent evt) {

Gerenciadores de Layout

Interface Gráfica. Disciplina: Desenvolvimento de Sistemas. Professor: Thiago Silva Prates

Aula 15 Interface Gáfica. Disciplina: Programação Estruturada e Orientada a Objetos Prof. Bruno Gomes

MODEL-VIEW-CONTROLER. Prof. Fellipe Aleixo

Como tratar eventos - A interface ActionListener e o método actionperformed

JTextArea JMenuBar JTable JDesktopPane e JInternalFrame

PROGRAMAÇÃO ORIENTADA A OBJETOS. Aula 1- Interfaces Gráficas com Swing

Curso Java Starter. 1

Programação Orientada a Objetos com Java. Prof. Júlio Machado

nome = n; cargo = c; salario = s; public void print() { System.out.println(nome cargo salario); public void aumento( double fator){

UNIVERSIDADE FEDERAL DE MATO GROSSO DO SUL SISTEMAS DE INFORMAÇÃO - CÂMPUS DE COXIM FUNDAMENTOS EM ORIENTAÇÃO A OBJETOS

Construção de Interfaces Gráficas

Aplicações Gráficas com AWT

Transcrição:

Adding User Interaction if62c - Fundamentos de Programação 1/2014 professores Danillo Leal Belmonte (belmonte@utfpr.edu.br) e Robinson Vida Noronha (vida@utfpr.edu.br) 1

Estratégias Adicionar ações isoladas aos componentes. Criar classes específicas de ações e enviar instâncias dessas classes aos componentes. 2

Estratégias Isoladas em Componentes 3

O Listener do Mouse import javax.swing.jpanel; import java.awt.*; import java.awt.event.*; import javax.swing.*; public class MeuPainel extends JPanel { public MeuPainel() { super.addmouselistener( new MouseAdapter() { public void mousepressed(mouseevent e) { JOptionPane.showMessageDialog(null, "Clique em (" + e.getx() + ", " + e.gety() + ")" + " com o botao #" + e.getbutton()); ); 4

Métodos da Classe MouseAdapter A classe MouseAdapter disponibiliza ainda os seguinte métodos: void mouseclicked(mouseevent e) - Invoked when the mouse has been clicked on a component. void mouseentered(mouseevent e) - Invoked when the mouse enters a component. void mouseexited(mouseevent e) - Invoked when the mouse exits a component. void mousepressed(mouseevent e) - Invoked when a mouse button has been pressed on a component. void mousereleased(mouseevent e) - Invoked when a mouse button has been released on a component. 5

A Classe Janela, onde tudo ocorre... import java.awt.dimension; import java.awt.toolkit; import javax.swing.*; class Janela extends JFrame { private Dimension dimension; private int width = 640, height=480; public Janela(boolean fullscreen) {... private void centerwindow(){/*coloca a janela no centro*/ private void fullwindow() {/* tela cheia*/ 6

O Construtor da Classe Janela public Janela(boolean fullscreen) { /* Se fechar o formulário, encerra a aplicação*/ super.setdefaultcloseoperation(exit_on_close); /* Le as dimensões do display do equipamento do usuário.*/ dimension = Toolkit.getDefaultToolkit().getScreenSize(); if (fullscreen == true){ setundecorated(true); /* retira a borda*/ fullwindow(); /* método que estica o formulário */ else { centerwindow(); /* posiciona a janela no centro*/ 7

Definição o Local da Janela private void centerwindow() {setsize(width,height); /* width = 640, height = 480*/ int x = (int) ((dimension.getwidth() - this.getwidth()) / 2); int y = (int)((dimension.getheight() - this.getheight()) / 2); setlocation(x, y); private void fullwindow() { setlocation(0,0); setsize((int)dimension.getwidth(), (int)dimension.getheight()); 8

Exemplo de Uso da classe Janela public class Main { public static void main(string[] args) { Janela janela = new Janela(true); MeuPainel meupainel = new MeuPainel(); janela.add(meupainel); janela.setvisible(true); 9

Inserção de Botão e definição das suas ações 10

Eventos em Botão public class Main {! public static void main(string[] args) {!! Janela janela = new Janela(false);!! MeuPainel meupainel = new MeuPainel();!!!! JButton btsair = new JButton("Sair");!! btsair.addactionlistener (!!! new AbstractAction()!!! {public void actionperformed(java.awt.event.actionevent evt)!!! { if (JOptionPane.showConfirmDialog(null, "Deseja sair da aplicação?") == 0)System.exit(0);!!! );!! meupainel.add(btsair);!!!! janela.add(meupainel);!! janela.setvisible(true);! 11

Estratégia de Criação de Classes Específicas de Ações (programação orientada a eventos) 12

Criação e uso de uma classe filha de MouseAdapter 13

Classe Gerente de Mouse class GerenteMouse extends MouseAdapter { int cliquex, cliquey; JPanel j; public GerenteMouse(JPanel janela){j = janela; public void mousepressed(mouseevent evt) { public void mousereleased(mouseevent evt){ public void mouseclicked(mouseevent evt) { public void mouseentered(mouseevent evt) { public void mouseexited(mouseevent evt) { 14

Exemplo de Gerente de Mouse class GerenteMouse extends java.awt.event.mouseadapter { int cliquex, cliquey; JPanel j; public GerenteMouse(JPanel janela){j = janela; public void mousepressed(java.awt.event.mouseevent evt) { int r,g,b; r = (int)(255*math.random()); g = (int)(255*math.random()); b = (int)(255*math.random()); j.setbackground(new java.awt.color(r,g,b)); public void mousereleased(java.awt.event.mouseevent evt){ public void mouseclicked(java.awt.event.mouseevent evt) { public void mouseentered(java.awt.event.mouseevent evt) { public void mouseexited(java.awt.event.mouseevent evt) { 15

Uso do Gerente de Mouse public class Main {! public static void main(string[] args) {!! Janela janela = new Janela(false);!! MeuPainel meupainel = new MeuPainel();!!!! JButton btsair = new JButton("Sair");!! btsair.addactionlistener(!new AbstractAction()!!!! {@Override!!!! public void actionperformed(actionevent evt)!!!! { if (JOptionPane.showConfirmDialog(null!, "Deseja sair da aplicação?") == 0)System.exit(0);! );!!!! meupainel.add(btsair);!!!! JButton mudacor = new JButton("muda a cor");!! mudacor.addmouselistener(new GerenteMouse(meuPainel));!! meupainel.add(mudacor);!!!! janela.add(meupainel);!! janela.setvisible(true);! 16

Classe Acoes class Acoes implements java.awt.event.actionlistener { public void actionperformed(java.awt.event.actionevent evt) { if (evt.getsource() instanceof JButton ) { JButton quem = (JButton)evt.getSource(); if (quem.getactioncommand() == "Sair 2") System.exit(0); 17

Uso de instância da classe Acoes...!! JButton btsair2 = new JButton("Sair 2");!! btsair2.addactionlistener(new Acoes());!! meupainel.add(btsair2);... 18

Listener do Teclado class MonitoraTeclado implements java.awt.event.keylistener {! public void keypressed(keyevent e) {! public void keyreleased(keyevent e) {!!! public void keytyped(keyevent e) { 19

Exemplo de Listener de Teclado class MonitoraTeclado implements java.awt.event.keylistener {! public void keypressed(keyevent e) {!! if (e.getkeycode() == KeyEvent.VK_LEFT)!! { System.out.println("LEFT"); if (e.getkeycode() == KeyEvent.VK_RIGHT) {System.out.println("RIGHT"); if (e.getkeycode() == KeyEvent.VK_DOWN) {System.out.println("DWON"); if (e.getkeycode() == KeyEvent.VK_UP) {System.out.println("UP");!! public void keyreleased(keyevent e) {!!! public void keytyped(keyevent arg0)! {System.out.println("Voce pressionou : " + e); 20

Uso da classe MonitoraTeclado...... meupainel.addkeylistener(new MonitoraTeclado()); meupainel.setfocusable(true);... JTextField texto = new JTextField(20); texto.addkeylistener(new MonitoraTeclado()); meupainel.add(texto);... 21

Tarefa para sedimentar os conceitos Programar uma calculadora com interface gráfica que permita executar as quatro operações básicas (somar, subtrair, multiplicar e dividir). fim 22