Capítulo 15 Swing – Parte 2.

Slides:



Advertisements
Apresentações semelhantes
«Forte do Bom Sucesso (Lisboa) – Lápides 1, 2, 3» «nomes gravados, 21 de Agosto de 2008» «Ultramar.TerraWeb»
Advertisements

IFTO ESTRUTURA DE DADOS AULA 05 Prof. Manoel Campos da Silva Filho
APLICAÇÕES DE LINGUAGEM DE PROGRAMAÇÃO ORIENTADA A OBJETOS COMPONENTES GUI – PARTE I Prof. Thiago Pereira Rique
INFORMAÇÕES COMPLEMENTARES
Palestras, oficinas e outras atividades
1 Interface Gráfica em Java Profa. Dra. Angélica Félix de Castro.
Eventos Marco Antonio, Arquiteto de Software – TJDF Novembro/2005
Criação de telas com Swing Arquiteto de Software – TJDF
Material pedagógico Multiplicar x 5 Clica!
Vamos contar D U De 10 até 69 Professor Vaz Nunes 1999 (Ovar-Portugal). Nenhuns direitos reservados, excepto para fins comerciais. Por favor, não coloque.
14/10/09 Uma animação possui: Início; Passo; Fim; 1.
Exercício do Tangram Tangram é um quebra-cabeças chinês no qual, usando 7 peças deve-se construir formas geométricas.
Windows Forms 2º Semestre 2010 > PUCPR > TPU Bruno C. de Paula.
Nome : Resolve estas operações começando no centro de cada espiral. Nos rectângulos põe o resultado de cada operação. Comprova se no final.
APLICAÇÕES DE LINGUAGEM DE PROGRAMAÇÃO ORIENTADA A OBJETOS COMPONENTES GUI – PARTE III Prof. Thiago Pereira Rique
Copyright (c) 2003 by Valery Sklyarov and Iouliia Skliarova: DETUA, IEETA, Aveiro University, Portugal.
Criação de interfaces gráficas
Excel Profa. Cristina M. Nunes.
Capítulo 14 Componentes GUI: Parte 1
14.17 Tratamento de Eventos de Teclado
14.6  Campos de texto e uma introdução ao tratamento de eventos com classes aninhadas Um usuário interage com uma GUI para indicar as tarefas que o aplicativo.
Curso de ADMINISTRAÇÃO
Linguagens de Programação Orientadas a Objetos
Arrays Profa. Isabel Harb Manssour (Material adaptado das aulas dos Profs.: Luciana Nedel, Júlio Machado e Bernardo Copstein) Arrays Exercícios.
Graphical User Interface (GUI) Prof(o): Alexandre Parra.
Linguagem de Programação II
Capítulo 15 Swing – Parte 1.
Aula 4 Nomes, Vinculações, Tipos e Escopos
Tutorial II: Tratando eventos em Java
Tutorial I: Criando a interface de uma aplicação em Java
EXEMPLOS DE ESTRUTURAS PROTENDIDAS
Aula de reposição Prof. Grace e Ângela
Provas de Concursos Anteriores
Componentes GUI GUI – Grafical User Interface – São construídas a partir de componentes GUI chamados de controles ou widgets (windows gadgets – engenhocas.
Renda até 2 SM.
Hamburgo, Alemanha Definir o caminho que irá permitir a Lions Clubs International alcançar o seu potencial pleno como organização.
Módulo Financeiro Centro de Custo.
Impressão de etiquetas
(CESPE/ Técnico Judiciário do TRT 17ª Região/ES) O Superior Tribunal de Justiça entende que o candidato aprovado em concurso público dentro do limite.
MECÂNICA - DINÂMICA Exercícios Cap. 13, 14 e 17. TC027 - Mecânica Geral III - Dinâmica © 2013 Curotto, C.L. - UFPR 2 Problema
1 António Arnaut Duarte. 2 Sumário: primeiros passos;primeiros passos formatar fundo;formatar fundo configurar apresentação;configurar apresentação animação.
CATÁLOGO GÉIA PÁG. 1 GÉIA PÁG. 2 HESTIA PÁG. 3.
Estruturas de Dados com Jogos
Lemas (Sudkamp)  .
Coordenação Geral de Ensino da Faculdade
Programação Visual em Java
Plataforma Brasil – Submissão de pesquisa
Java – Programação Gráfica
Linguagem de Programação III
Interface Grafica - Swing Professor Rafael Monteiro
Projeto Marcas que Eu Gosto 1 PROJETO MARCAS QUE EU GOSTO Estudos Quantitativo de Consumidores Janeiro / 2005.
Interface Gráfica (material da Profa. Luciana Nedel - www. inf. pucrs
José Pacheco A. Prado. Você pode definir diferentes cursores em seus projetos. Para isto basta utilizar a função setCursor.
1 2 Observa ilustração. Cria um texto. Observa ilustração.
Estatística Aula 9 – 28/02/2011.
1 Aplicações do Fecho Regular. 2 A interseção de uma linguagem livre de contexto e uma linguagem regular é uma linguagem livre de contexto livre de contexto.
POO.
Olhe fixamente para a Bruxa Nariguda
Jpanel e Diagramadores
ÁREA DE TRABALHO DO WINDOWS
Módulo Compras Relatórios e Relações 1. Objetivo 2 Conhecer os relatórios e as relações do sistema disponibilizadas no módulo Compras.
POO - II Prof.: Jean Carlo Mendes
POO Interface Gráfica - Swing
Capítulo 1. Classes internas  Classe interna  Instância da classe interna  Referências na classe interna  Modificadores de membros  Classe interna.
Introdução PLB-II (Java) – Prof. Alberto  Mais componentes da GUI.
Programação Prof.: Bruno Rafael de Oliveira Rodrigues.
Programação Gráfica em Java Introdução
UNIVERSIDADE FEDERAL DE SANTA CATARINA CTC - CENTRO TECNOLÓGICO INE - DEPARTAMENTO DE INFORMÁTICA E ESTATÍSTICA DISCIPLINA DE COMPUTAÇÃO COM OBJETOS DISTRIBUÍDOS.
Java Módulo II Projeto Final.
Principais Classes Swing AWT  As classes e interfaces localizadas nos pacotes:  java.awt  javax.swing  são recursos para o desenvolvimento de GUIs.
Transcrição da apresentação:

Capítulo 15 Swing – Parte 2

Swing – parte 2 A classe javax.swing.JFrame Componentes de tela Gerenciadores de layout Eventos

A classe javax.swing.JFrame Classe base para implementação de janelas em sistemas operacionais com interface gráfica, como Windows, Linux Gnome/KDE, Mac OS X, etc. Para criar uma janela, devemos implementar uma classe derivada da classe JFrame.

A classe javax.swing.JFrame public class ExemploFrame extends JFrame { public ExemploFrame() { setTitle("Janela exemplo"); setSize(640, 300); setDefaultCloseOperation( DISPOSE_ON_CLOSE); setVisible(true); }

A classe javax.swing.JFrame JFrame janela = new ExemploFrame();

setTitle(“Janela Exemplo”); Método setTitle() Define o título da janela setTitle(“Janela Exemplo”);

Método setSize() Define o tamanho inicial da janela setSize(300, 200); 200 px 300 px

Método setDefaultCloseOperation() Define o comportamento da janela ao clicar no botão fechar. setDefaultCloseOperation(DISPOSE_ON_CLOSE); Opções: EXIT_ON_CLOSE – Encerra o programa. DISPOSE_ON_CLOSE – Fecha a janela. HIDE_ON_CLOSE – Esconde a janela (DEFAULT). DO_NOTHING_ON_CLOSE – Não faz nada.

Método setVisible() Torna a janela visível setVisible(true); Geralmente utilizada como última instrução na construção da janela.

Método setLocation() Define a posição inicial da janela.

Método setLocation() 150 px 200 px

Método setLocation() Centralizando a janela em relação à Área de Trabalho: Dimension dimension = Toolkit.getDefaultToolkit().getScreenSize(); int larguraTela = dimension.width; int alturaTela = dimension.height; int larguraJanela = getSize().width; int alturaJanela = getSize().height; int posicaoH = (larguraTela - larguraJanela) / 2; int posicaoV = (alturaTela - alturaJanela) / 2; setLocation(posicaoH, posicaoV);

Método setResizable() Define se a janela possuirá tamanho fixo setResizable(false); true – Permite que o usuário altere o tamanho da janela; false – A janela possuirá tamanho fixo.

Exercício Monte uma janela com a aparência abaixo: Este janela deverá possuir o tamanho fixo, aparecendo automaticamente centralizada na tela e deverá encerrar o programa quando o usuário clicar no botão fechar

Componentes de tela

Componentes de tela Principais componentes de Tela javax.swing.JPanel javax.swing.JButton javax.swing.JTextField javax.swing.JLabel javax.swing.JCheckBox javax.swing.JRadioButton

javax.swing.JPanel this (JFrame) pnlRaiz (JPanel) public class ComponentesFrame extends JFrame { JPanel pnlRaiz = new JPanel(); public ComponentesFrame() { . . . . . . this.add(pnlRaiz); } this (JFrame) pnlRaiz (JPanel)

javax.swing.JPanel Adicionando componentes por coordenadas: c1 c2 pnlRaiz.setLayout(null); c1.setBounds(20, 10, 40, 15); pnlRaiz.add(c1); c2.setBounds(100, 40, 40, 15); pnlRaiz.add(c2); 40 10 c1 15 c2 15 20 40 100 40

javax.swing.JButton public class ComponentesFrame extends JFrame { JButton btnOk = new JButton(); public ComponentesFrame() { . . . . . . btnOk.setBounds(50, 60, 100, 30); btnOk.setText(“Ok”); pnlRaiz.add(btnOk); }

btnOk.setText(“Clique aqui!”); javax.swing.JButton Método setText() Altera o rótulo do botão btnOk.setText(“Clique aqui!”);

btnOk.setMnemonic(‘C’); javax.swing.JButton Método setMnemonic() Assinala uma tecla de atalho para o botão btnOk.setMnemonic(‘C’);

btnOk.setToolTipText(“Clique aqui para dominar o mundo!”); javax.swing.JButton Método setToolTipText() Assinala um texto a ser exibido na passagem do mouse. btnOk.setToolTipText(“Clique aqui para dominar o mundo!”);

btnOk.setEnabled(false); javax.swing.JButton Método setEnabled() Habilita/desabilita o botão para uso. btnOk.setEnabled(false);

btnOk.setVisible(false); javax.swing.JButton Método setVisible() Torna o botão visível/invisível. btnOk.setVisible(false);

btnOk.setIcon(new ImageIcon(“C:\\krusty1.png”)); javax.swing.JButton Método setIcon() Assinala uma imagem a ser exibida pelo botão btnOk.setIcon(new ImageIcon(“C:\\krusty1.png”));

javax.swing.JButton Método setPressedIcon() Assinala uma imagem a ser exibida pelo botão no momento em que o usuário clicar. Deve ser utilizado em conjunto com o método setIcon() btnOk.setIcon(new ImageIcon(“C:\\krusty1.png”)); btnOk.setPressedIcon(new ImageIcon(“C:\\krusty2.png”));

javax.swing.JTextField public class ComponentesFrame extends JFrame { JTextField txtNome = new JTextField(); public ComponentesFrame() { . . . . . . txtNome.setBounds(40, 50, 120, 24); pnlRaiz.add(txtNome); }

javax.swing.JTextField setBounds() setText() setToolTipText() setEnabled() setVisible()

javax.swing.JLabel public class ComponentesFrame extends JFrame { JLabel lblBemVindo = new JLabel(); public ComponentesFrame() { . . . . . . lblBemVindo.setBounds(30, 40, 160, 40); lblBemVindo.setText("Bem vindo ao mundo Java!"); pnlRaiz.add(lblBemVindo); }

javax.swing.JLabel setBounds() setText() setToolTipText() setEnabled() setVisible() setIcon()

javax.swing.JLabel Métodos setDisplayedMnemonic() e setLabelFor() Assinala uma tecla de atalho para um outro componente lblNome.setDisplayedMnemonic(‘n’); lblNome.setLabelFor(txtNome);

javax.swing.JCheckBox public class ComponentesFrame extends JFrame { JCheckBox chkFumante = new JCheckBox(); public ComponentesFrame() { . . . . . . chkFumante.setBounds(50, 40, 130, 40); chkFumante.setText(“Fumante"); pnlRaiz.add(chkFumante); }

javax.swing.JCheckBox setBounds() setText() setMnemonic() setToolTipText() setEnabled() setVisible()

chkFumante.setSelected(true); javax.swing.JCheckBox Método setSelected() Marca/desmarca a flag do checkbox. chkFumante.setSelected(true);

javax.swing.JRadioButton public class ComponentesFrame extends JFrame { JRadioButton optAtivo = new JRadioButton(); public ComponentesFrame() { . . . . . . optAtivo.setBounds(60, 40, 100, 40); optAtivo.setText(“Ativo"); pnlRaiz.add(optAtivo); }

javax.swing.JRadioButton setBounds() setText() setMnemonic() setToolTipText() setEnabled() setVisible() setSelected()

javax.swing.ButtonGroup ButtonGroup grpSexo = new ButtonGroup(); ButtonGroup grpTime = new ButtonGroup(); grpSexo.add(optMasc); grpSexo.add(optFem); grpTime.add(optCor); grpTime.add(optPal); grpTime.add(optSao); grpTime.add(optSan);

Exercício Utilizando o Eclipse/VEP, crie uma janela com o layout apresentado pelo slide 15.

Gerenciadores de Layout Um gerenciador de layout é um objeto vinculado ao painel da janela que é responsável pelo posicionamento dos componentes. pnlRaiz (JPanel) this (JFrame) (LayoutManager)

Gerenciadores de Layout Principais layout’s: java.awt.GridLayout java.awt.BorderLayout java.awt.FlowLayout

java.awt.GridLayout pnlRaiz.setLayout(new GridLayout(3, 2)); pnlRaiz.add(btn1); pnlRaiz.add(btn2); pnlRaiz.add(btn3); pnlRaiz.add(btn4); pnlRaiz.add(btn5); pnlRaiz.add(btn6);

java.awt.BorderLayout pnlRaiz.setLayout(new BorderLayout()); pnlRaiz.add(btn1, BorderLayout.NORTH); pnlRaiz.add(btn2, BorderLayout.SOUTH); pnlRaiz.add(btn3, BorderLayout.EAST); pnlRaiz.add(btn4, BorderLayout.WEST); pnlRaiz.add(btn5, BorderLayout.CENTER);

java.awt.FlowLayout pnlRaiz.setLayout(new FlowLayout(FlowLayout.LEFT)); pnlRaiz.add(btn1); pnlRaiz.add(btn2); pnlRaiz.add(btn3); pnlRaiz.add(btn4); pnlRaiz.add(btn5); pnlRaiz.add(btn6);

Layout’s mixados Podemos utilizar containers para criar janelas com layout’s mais sofisticados. Um container é um componente de tela utilizado para conter outros componentes de tela. Cada container possui layout próprio e pode ser utilizado na construção de janelas com layouts mixados. O container mais comumente utilizado é o javax.swing.JPanel

Layout’s mixados JPanel pnlEsquerda = new JPanel(); pnlEsquerda.setLayout( new GridLayout(4, 1)); pnlEsquerda.add(btn2); pnlEsquerda.add(btn3); pnlEsquerda.add(btn4); pnlEsquerda.add(btn5); pnlRaiz.setLayout(new BorderLayout()); pnlRaiz.add(pnlEsquerda, BorderLayout.WEST); pnlRaiz.add(btn1, BorderLayout.CENTER);

Exercício Crie uma janela com o layout abaixo:

Eventos Um evento representa uma ação do usuário sobre a aplicação como um clique de mouse, um pressionar de tecla, ou qualquer outra interação com a aplicação. O Java utiliza “listeners” para perceber tais ações e executar rotinas.

Listeners Um listener é uma classe a ser implementada pelo desenvolvedor e vinculada a um componente de tela (botão, caixa de texto, etc) que será responsável por perceber uma ação sobre aquele componente. Esta classe deverá implementar uma das interfaces abaixo (tipos de listeners): java.awt.event.ActionListener java.awt.event.MouseListener java.awt.event.KeyListener java.awt.event.WindowListener

Criando um listener – Forma 1 Passo 1: Implementando uma classe listener public class ExibeOlaMundoListener implements ActionListener { public void actionPerformed(ActionEvent e) { System.out.println(“Olá, mundo”); } Passo 2: Registrando o listener no elemento gráfico . . . . . . btnOk.setBounds(30, 40, 90, 30); btnOk.setText(“Clique aqui”); btnOk.addActionListener(new ExibeOlaMundoListener()); add(btnOk); Vincula o listener ao botão btnOk. Quando o usuário clicar sobre este botão, a classe ExibeOlaMundo terá o seu método executado.

Criando um listener – Forma 2 Outra forma simples de utilizar listeners é fazer com que a própria classe de janela implemente o listener desejado: public class TesteFrame extends JFrame implements ActionListener { JButton btnOk = new JButton(“Ok”); public TesteFrame() { . . . . . . btnOk.addActionListener(this); } public void actionPerformed(ActionEvent e) { JOptionPane.showMessageDialog(this, “Olá, mundo”); Vincula a própria classe como listener do botão btnOk. Quando o usuário clicar sobre este botão, o método actionPerform da própria classe será executado.

Criando um listener – Forma 3 Uma das formas mais utilizadas na construção de listeners é mediante a criação de classe anônima. public class TesteFrame extends JFrame { . . . . . . public TesteFrame() { btnOk.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { JOptionPane.showMessageDialog(null, “Olá, mundo”); } }); Classe Anônima Uma classe sem nome que implementa a interface ActionListener para uso imediato.

java.awt.event.ActionListener Listener mais simples e mais amplamente utilizado em aplicações. Tipicamente registrado em botões ou outros componentes em que desejamos detectar o clique ou ativação (pressionar da tecla <ENTER>). Possui um único método: public void actionPerform(ActionEvent e) Executado ao clicar ou pressionar <ENTER> sobre o componente.

java.awt.event.MouseListener Utilizado para detectar eventos de mouse sobre o componente. Possui os seguintes métodos: public void mouseClicked(MouseEvent e) Executado ao clicar sobre o componente public void mouseEntered(MouseEvent e) Executado ao passar o ponteiro sobre o componente public void mouseExited(MouseEvent e) Executado ao sair com o ponteiro de cima do componente public void mousePressed(MouseEvent e) Executado ao baixar um dos botões do mouse sobre o componente. public void mouseReleased(MouseEvent e) Executado ao liberar o botão do mouse que havia sido baixado sobre o componente.

java.awt.event.KeyListener Utilizado para detectar eventos de teclado sobre o componente. Tipicamente utilizado em caixas de texto. Possui os seguinte métodos: public void keyTyped(KeyEvent e) Executado quando o usuário digita algum caracter sobre o componente. public void keyPressed(KeyEvent e) Executado quando o usuário baixa alguma tecla sobre o componente. public void keyReleased(KeyEvent e) Executado quando o usuário libera a tecla que foi baixada sobre o componente.

java.awt.event.WindowListener Utilizado para detectar eventos de janela. Possui os seguintes métodos: public void windowOpened(WindowEvent e) Executado quando a janela é aberta. public void windowClosing(WindowEvent e) Executado quando a janela está em iminência de ser fechada. Tipicamente utilizado para emitir notificações ao usuário quando este tentar fechar a janela. public void windowClosed(WindowEvent e) Executado após a janela ter sido fechada.

java.awt.event.WindowListener Continuação: public void windowIconified(WindowEvent e) Executado quando a janela é minimizada. public void windowDeiconified(WindowEvent e) Executado quando a janela é restaurada. public void windowActivated(WindowEvent e) Executado quando a janela ganha o foco. public void windowDeactivated(WindowEvent e) Executado quando a janela perde o foco (usuário “salta” para dentro desta janela).

Exercício Calculadora Básica