Interface Grafica - Swing Professor Rafael Monteiro

Slides:



Advertisements
Apresentações semelhantes
APLICAÇÕES DE LINGUAGEM DE PROGRAMAÇÃO ORIENTADA A OBJETOS COMPONENTES GUI – PARTE I Prof. Thiago Pereira Rique
Advertisements

Programação em Java Prof. Maurício Braga
Construção de Algoritmos 2
Programação em Java Prof. Maurício Braga
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
Tratamento de Exceções
APLICAÇÕES DE LINGUAGEM DE PROGRAMAÇÃO ORIENTADA A OBJETOS COMPONENTES GUI – PARTE III Prof. Thiago Pereira Rique
Criação de interfaces gráficas
Informática Aplicada.
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.
Java: Pacotes e Modificadores de Visibilidade
Java: Pacotes e Modificadores de Visibilidade
Linguagens de Programação Orientadas a Objetos
15 Introdução à Manipulação de Planilhas Eletrônicas Planilhas Eletrônicas são tabelas usadas para comunicar informações de forma clara, precisa e sucinta.
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
Universidade do Vale do Paraíba Colégio Técnico Antônio Teixeira Fernandes Disciplina Programação Orientada a objetos II. Material III-Bimestre Caixa de.
Material III-Bimestre Wagner Santos C. de Jesus
Wagner Santos C. de Jesus
Capítulo 15 Swing – Parte 1.
Capítulo 15 Swing – Parte 2.
Tutorial II: Tratando eventos em Java
Tutorial I: Criando a interface de uma aplicação em Java
JAVA ENUMS © 2009 by Jorge L. de Souza Leão março de 2009 PEE - COPPE/UFRJ.
O Panorama da computação de alto desempenho
Aula de reposição Prof. Grace e Ângela
Classes e objetos Arrays e Sobrecarga
Introdução a Programação JAVA
Componentes GUI GUI – Grafical User Interface – São construídas a partir de componentes GUI chamados de controles ou widgets (windows gadgets – engenhocas.
CRIANDO OBJETOS EM JAVA
Interfaces.
Programação Visual em Java
Laboratório de Programação I Carlos Oberdan Rolim Ciência da Computação Sistemas de Informação.
Java – Programação Gráfica
Linguagem de Programação III
Interface Gráfica (material da Profa. Luciana Nedel - www. inf. pucrs
OPERADORESOPERADORES SCJP – Otimize-TI. Operadores Java Resultado: Maioria das operações é um booleano ou numérico. Não podem ser sobrecarregados (Existem.
José Pacheco A. Prado. Você pode definir diferentes cursores em seus projetos. Para isto basta utilizar a função setCursor.
LINGUAGEM DE PROGRAMAÇÃO VISUAL II
Pilhas Profa. Nádia Félix.
POO.
Jpanel e Diagramadores
ÁREA DE TRABALHO DO WINDOWS
MICROSOFT WORD AULA DO DIA 16/10/2009
Curso Programação – JAVA Centro de Formação São Domingos
Aulas 2 e 3 – Java – Prof. Marcelo Heitor # O método main e argumentos na linha de comando; # Fluxo padrão de entrada e saída; # A classe JOptionPane;
Listas Simplesmente Encadeadas
Wagner Santos C. de Jesus
POO - II Prof.: Jean Carlo Mendes
POO Interface Gráfica - Swing
Java Kickstart, day 2 Semelhanças com linguagem C.
Estrutura de Controle em JAVA
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 Orientada a Objetos - Java Professor: Jean Carlo Mendes.
GUI – Graphic User Interface Prof. M.Sc. Ronnison Reges Vidal.
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.
Programação Orientada a Objetos Prof. Rafael Silva.
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.
Elaborando Interfaces
Elaborando as Interfaces Aulas 43, 44 e 45
EXERCÍCIOS DA AULA PASSADA
Transcrição da apresentação:

Interface Grafica - Swing Professor Rafael Monteiro JAVA Interface Grafica - Swing Professor Rafael Monteiro POO usando JAVA

Swing - Conceitos O pacote Swing não é um substituto do AWT ( Abstract Window Toolkit ), o pacote gráfico utilizado nas primeiras versões de java. Em vez disso, o Swing é visto como uma camada disposta sobre o AWT e que utiliza internamente os componentes da AWT. Diferentemente da AWT, onde alguns componentes gráficos utilizavam a capacidade de renderização da interfaces gráficas em que o aplicativo estava sendo executado, os componentes do Swing são todos escritos em puro java. Um componente do pacote Swing é reconhecido pela letra J antecedendo o nome do mesmo componente no pacote AWT. POO usando JAVA

Existem três classes a serem utilizadas na criação de uma GUI: Swing - Conceitos Todas as classes do swing são extenções da classe AWT, que por sua vez, são extenções da classe java.lang.Object, a superclasse de todas as classes do Java. Existem três classes a serem utilizadas na criação de uma GUI: import java.awt.*  permite a utilização de diversas classes do pacote AWT, além de possuir uma série de constantes numéricas. imoport java.awt.event  usado para o processamento dos eventos que ocorrerão na janela, tais como: Click do Mouse, ENTER do campo texto, etc. import javax.Swing.*  permite a utilização de diversas classes do pacote swing. POO usando JAVA

Swing – Criação de Frames Frame é um componente do pacote AWT responsável pela criação de janeas, parecidas com as encontradas em aplicativos do ambiente Windows. O componente frame gera uma janela com barra de título, bordas e pode ter outros componentes em seu interior. Imagine o componente frame como uma folha de projeto em que são inseridos diversos objetos. Em conjunto com esses objetos, definidos no metodo construtor da classe, o componente frame gera uma visualização grafica de um determinado aplicativo. Esta classe estende diretamente a classe Frame do AWT. POO usando JAVA

Swing – Compreendendo Eventos As interfaces gráficas são elementos baseados em eventos. De uma maneira geral, eventos são interaçãao do usuário com a interface gráfica. Mover o mouse é um evento; fechar uma janela é um outro evento.nn Eventos ocorrem a todo instante nos aplicativos modernos. Continua... POO usando JAVA

Swing – Compreendendo Eventos Quando o usuário interage con um objeto da interface gráfica, um evento é enviado automaticamente para o programa na expectativa de que ele seja identificado e tratado e convenientemente tratado para produzir algum tipo de resposta à ação realizada sobre o objeto. POO usando JAVA

Swing – Estrutura Hierárquica AWT e Swing JWindow Window Dialog JDialog Frame JFrame Component Container JLabel AbstractButton JButton Jcomponent JPanel JRootPane Os retângulos sombreados representam os controles da AWT. POO usando JAVA

O que necessito aprender para usar os componentes Swing? É possível utilizar alguns componentes básicos do Swing diretamente. Com o Swing não há mudanças fundamentais no modo como as aplicações são construídas. Pode-se criar a janela principal da aplicação, usar frames, componentes e gerenciadores de layout e é possível estabelecer conexão quase que da mesma forma nterfaces gráficas são elementos baseados em eventos. POO usando JAVA

Swing – Exemplo 1 Continua... import java.awt.*; import java.awt.event.*; import javax.swing.*; class Exemplo1 extends JFrame { Exemplo1() { setTitle("Minha primeira Janela em Java"); setSize(400,50); setLocation(150,150); setResizable(false); getContentPane().setBackground(Color.gray); String x = getTitle(); } public static void main(String args[]) { JFrame Janela=new Exemplo1(); Janela.show(); setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE); Janela.setVisible(true); } } Importação de Pacotes Extende de JFrame construtor - mesmo nome da classe titulo da Janela dimensoes da janela (Largura e Comprimento) canto esquerdo e topo da tela a janela não pode ser redimensionada cor de fundo da janela JPanel pane = new Jpanel(); pane.setBackground(newColor(180,180,180)); add(pane); getContentPane() é um método que adiciona ao painel. Este retorna uma referencia ao painel de conteúdo do Jfame(um objeto da classe Jframe). declaração e inicialização do objeto Janela Mostra a Janela na tela Continua... POO usando JAVA

Swing – Exemplo 1 Continua... POO usando JAVA

Swing – Exemplo 2 Continua... import java.awt.*; import java.awt.event.*; import javax.swing.*; public class Exemplo2 extends JFrame implements ActionListener { JButton b1,b2; ImageIcon icone = new ImageIcon("C:/Livros/Java/busca.gif");  Defini-se uma imagem public Exemplo2() setTitle("Inserindo botoes na janela"); setSize(350,100); setLocation(50,50); getContentPane().setBackground(new Color(180,180,180)); Em qualquer aplicacao em que as acoes do usuario devem ser interpretadas quando ele interagir com a janela, e necessaria a implementacao de uma interface. Exemplo0903 - Neste exemplo foi utilizada a interface ActionListener. Qdo. Uma implementacao de interface eh utilizada, torna-se obrigatorio inserir na aplicacao um ou varios metodos que realizarao o processamento dos eventos. Ao contrario das liguagens de programacoa visuais, nao existe um metodo separado para cada evento gerado em uma janela. Em java, existe apenas a presenca de alguns metodos, comuns a todos os componentes, e actionPerformand eh um deles. Devido ao fato de nao existir um metodo para cada evento dos componentes de uma janela, dentro do metodo actionPerformand eh necessario verificar qual dos componentes eh responsavel pela geracao do evento. Em outras palavrras eh necessario reconhecer em qual componente o usuario clicou, ou deu ENTER e assim por diante. As linhas 29 ate 39 executam as tarefas de reconhecer qual dos botoes foi pressionado. Continua... POO usando JAVA

Swing – Exemplo 2 Continua... b1 = new JButton("Busca",icone); b1.setHorizontalTextPosition(AbstractButton.LEFT); //posicao do texto b1.setVerticalTextPosition(AbstractButton.TOP); //posicao do texto b1.setBackground(new Color(100,180,180)); //cor de fundo do botao b1.setForeground(Color.black); //cor do titulo do botao b1.setFont(new Font("ScriptS",Font.BOLD,20)); //define a fonte do botao b1.setEnabled(true); //Esta condicao eh Defaut, podendo ser alterada para FALSE b1.addActionListener(this); //registra o b1 para que um evento seja gerado por ele b1.setToolTipText("Pressione aqui para realizar uma busca"); //exibe a mensagem qdo o ponteiro do estiver sobre o botao. b1.setMnemonic(KeyEvent.VK_B); //cria um atalho via teclado: ALT + B b2 = new JButton("Cancelar"); b2.addActionListener(this); b2.setMnemonic(KeyEvent.VK_C); b2.setToolTipText("Pressione aqui para cancelar"); getContentPane().setLayout(new FlowLayout()); //gerenciador de layout getContentPane().add(b1); getContentPane().add(b2); } Todo objeto inserido em um frame deve ser registrado para que os eventos gerados por ele sejam reconhecidos, se um objeto nao for registrado ele nao tera nenhuma acao; ficara apenas como uma imagem estatica. O metodo addActionListener(this) eh responsavel por este registro. Assim como o b1 todos os botoes devem ser adicionados ao processador de eventos, ou seja, todo botao que recebe um clique para realizar alguma funcao necessita invocar o metodo actionListener, de forma que o metodo actionPerformedpossa reconhce-lo Continua... POO usando JAVA

Swing – Exemplo 2 Continua... public void actionPerformed(ActionEvent e) { // metodo implementado pelo ActionListener if (e.getSource()==b1) //se o objeto que gerou o evento for o botao b1 { System.out.println("Botao 1 pressionado"); } if (e.getSource()==b2) System.out.println("Botao 2 pressionado"); Comtem um metodo que recebe todas as acoes disparadas na janela, ou seja, todos os eventos gerados a partir de uma interacoa do usuario com a aplicacao. Sua utilizacao e obrigatoria qdo o frame implementa a interface actionListener. A lettra e eh declarada como um objeto da classe ActionEvent e recebera todos os chamados aos eventos da janela. Todos os eventos gerados serao tratados por este metodo actionPeerformed e o objeto ActionEvent sera responsevel por definir qual objeto gerou esse evento Continua... POO usando JAVA

Swing – Exemplo 2 Continua... public static void main(String args[]) { JFrame Janela = new Exemplo2(); Janela.show(); setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE); } Continua... POO usando JAVA

Swing – Exemplo 3 Continua... import java.awt.*; import java.awt.event.*; import javax.swing.*; class Exemplo3 extends JFrame implements ActionListener { JLabel L1,L2,L3; JButton B1, B2, B3, B4, B5; JTextField T1,T2,T3; public static void main(String args[]) { JFrame Janela=new Exemplo3(); Janela.show(); setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE); } Exemplo0904 Continua... POO usando JAVA

Swing – Exemplo 3 Continua... Exemplo3() { setTitle("Calculadora"); setSize(350,90); setLocation(50,50); getContentPane().setBackground(new Color(150,150,150)); getContentPane().setLayout(new GridLayout(3,4)); L1 = new JLabel("Num.1"); L1.setForeground(Color.black); L1.setFont(new Font("",Font.BOLD,14)); L2 = new JLabel("Num.2"); L2.setForeground(Color.black); L2.setFont(new Font("",Font.BOLD,14)); L3 = new JLabel("Total"); L3.setFont(new Font("",Font.BOLD,14)); Continua... POO usando JAVA

Swing – Exemplo 3 Continua... B1 = new JButton ("+"); B1.addActionListener(this); B2 = new JButton ("-"); B2.addActionListener(this); B3 = new JButton ("x"); B3.addActionListener(this); B4 = new JButton ("/"); B4.addActionListener(this); B5 = new JButton ("Limpar"); B5.addActionListener(this); B5.setBackground(Color.black); B5.setForeground(Color.white); T1 = new JTextField(); T2 = new JTextField(); T3 = new JTextField(); Continua... POO usando JAVA

Swing – Exemplo 3 Continua... // T1.addTextListener(this); T3.setEditable(false); //define que o textField como somente leitura //adicionam todos os objetos na janela na ordem que aparecem getContentPane().add(L1); getContentPane().add(T1); getContentPane().add(B1); getContentPane().add(B2); getContentPane().add(L2); getContentPane().add(T2); getContentPane().add(B3); getContentPane().add(B4); getContentPane().add(L3); getContentPane().add(T3); getContentPane().add(B5); } Continua... POO usando JAVA

Swing – Exemplo 3 Continua... public void actionPerformed(ActionEvent e) { if (e.getSource()==B5) T1.setText(""); T2.setText(""); T3.setText(""); return; } float N1=0,N2=0,result=0; try N1 = Float.parseFloat(T1.getText()); N2 = Float.parseFloat(T2.getText()); catch (NumberFormatException erro) T3.setText("Erro"); return; //encerara o método actionPerformed Continua... POO usando JAVA

Swing – Exemplo 3 Continua... if (e.getSource()==B1) { result = N1 + N2; } if (e.getSource()==B2) { result = N1 - N2; } if (e.getSource()==B3) { result = N1 * N2; } if (e.getSource()==B4) { result = N1 / N2; } T3.setText(""+result); //qdo um numero e concatenado com um texto automaticamente ele se transforma em um texto } Continua... POO usando JAVA

Listas e Caixas de Seleção; Caixas de Opção; Painéis e Botões de Rádio Swing Continuação ... Listas e Caixas de Seleção; Caixas de Opção; Painéis e Botões de Rádio POO usando JAVA