Java – Programação Gráfica

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
WINDOWS Sistemas Operacionais PLATAFORMA TECNOLÓGICOS
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
Modificadores Marco Antonio. Introdução Em todas as linguagens de programação o acesso a classes/métodos deve seguir algumas regras.
Java Básico Orientação a Objeto Marco Antonio Software Architect Fev/2008.
APLICAÇÕES DE LINGUAGEM DE PROGRAMAÇÃO ORIENTADA A OBJETOS COMPONENTES GUI – PARTE III Prof. Thiago Pereira Rique
Imprimir apresentações em diversos formatos
Informática Aplicada.
14.17 Tratamento de Eventos de Teclado
Linguagens de Programação Orientadas a Objetos
Orientação a Objetos Introdução. Objetos: o que são? Olhando o mundo real pode-se ver vários objetos: mesa, cadeiras, alunos, professores etc. Esses objetos.
Iniciação ao Java – Márcio F. Campos
Refatorações Experiência é aquela coisa maravilhosa que permite que você reconheça um erro tão logo o cometa novamente F.P. Jones.
Graphical User Interface (GUI) Prof(o): Alexandre Parra.
Tutorial II: Tratando eventos em Java
Tutorial I: Criando a interface de uma aplicação em Java
Layers Possuem a intenção de substituir as tabelas na função de diagramação das páginas para a internet. Eles possuem uma idéia ótima e são totalmente.
Aula de reposição Prof. Grace e Ângela
Análise e Projetos de Sistemas UML-Linguagem de Modelagem Unificada Modelo de Dados com UML Diagrama de Classes Professor: Armando Hage.
Visite nosso site ! - Soluções em Geoprocessamento Distribuidor autorizado da MicroImages.
7 - Criação de Páginas Web
Personalizando Tabelas
Componentes GUI GUI – Grafical User Interface – São construídas a partir de componentes GUI chamados de controles ou widgets (windows gadgets – engenhocas.
Revisão POO Profa. Cintia Carvalho Oliveira
VISÃO GERAL DO APLICATIVO.
Treinamento do Microsoft® Word 2010
Linguagem de Programação III
Interface Grafica - Swing Professor Rafael Monteiro
Interface Gráfica (material da Profa. Luciana Nedel - www. inf. pucrs
Tarefa 02 Visual Studio 2005 Visual C# Programa Hello World.
Linguagem de Programação JAVA
Introdução a aplicativos Java
José Pacheco A. Prado. Você pode definir diferentes cursores em seus projetos. Para isto basta utilizar a função setCursor.
07/04/2017 Linux Ubuntu 2.
Professor: Márcio Amador
LINGUAGEM DE PROGRAMAÇÃO VISUAL II
POO.
Jpanel e Diagramadores
Na barra de mensagens, clique em Habilitar Edição,
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;
POO - II Prof.: Jean Carlo Mendes
POO Interface Gráfica - Swing
Curso de Aprendizado Industrial Desenvolvedor WEB
Java Kickstart, day 2 Semelhanças com linguagem C.
Aula Prática 4 Monitoria IP/CC (~if669).
Polimorfismo.
Introdução ao aplicativo Lync da Windows Store Lync 2013.
Introdução PLB-II (Java) – Prof. Alberto  Mais componentes da GUI.
O que é a AmaWebs? A AmaWebs é um Software Constructor de Páginas Webs que lhe permite criar, publicar e fazer manutenção da sua pagina na internet. Este.
Herança Modelagem e Programação Orientada a Objetos
Novidades... Quartetos; – Equilibrar Conhecimento; – Aprender a Ensinar; – Trabalho em Equipe; – Facilitar a Vida do Professor. – Então, definam seus grupos.
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.
Classes abstratas São classes das quais não se pode instanciar objetos. São classes das quais não se pode instanciar objetos. Seu objetivo é ser herdada.
Microsoft Excel.
Programação Orientada a Objetos Prof. Rafael Silva.
Array e ArrayList LPOO – 01/09/14.
1º e 2º ano XII Olimpíadas das Cores Emílio Miotti.
CURSO JAVA BÁSICO Módulo 9 – slide 1 Módulo 10 Threads.
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.
Herança em Java Curso: Informática Disciplina: Programação Orientada a Objetos Prof. Abrahão Lopes
JFC e Swing Thiago Medeiros Barros 18/08/2011. JFC Java Foundation Classes é um conjunto de componentes e serviços que simplificam o desenvolvimento e.
Aline Oliveira Everton Godoy Gabriel Leoni Lenilton Rocha Nelson Deda.
Tutorial Webnode Criando site 1. Registrando Acesse o endereço: e preencha os dados solicitados e clique em Registre-se e crie.
Linguagem de Programação – Aula 04 Prof. Me. Ronnison Reges Vidal.
Transcrição da apresentação:

Java – Programação Gráfica Uma janela de nível mais alto é chamado de um quadro frame em Java. A biblioteca AWT tem uma classe baseada em semelhantes, chamada Frame. A versão Swing dessa classe é chamada de JFrame; a JFrame estende a classe Frame e é um dos poucos componentes Swing que não é desenhado em uma ('tela de desenho" chamada canvas. Assim, as decorações (botões,.barra de título, ícones etc) são desenhadas pelo sistema de gerenciamento de janelas do usuário e não pelo Swing. Os quadros são exemplos de contêineres. Um quadro pode conter outro componentes da interface de usuário, como botões e campos de texto.

Exemplo : FirstTestjava import javax.swing.*;   Exemplo : FirstTestjava import javax.swing.*; class FirstFrame extends Jframe { public FirstFrame () { setTitle('FirstFrame'); setSize(300, 200);  } } public class FirstTest { public static void main(String[] args) { Frame frame = new FirstFrameo; frame.show ();

Vamos percorrer esse programa, linha por linha. As classes Swing são colocadas no pacote javax. swing. O nome javax do pacote indica um pacote de extensão java, e não um pacote do núcleo. No Java 2, o pacote Swing não é mais uma extensão, mas faz parte de hierarquia do núcleo. Nas versões beta do Java 2 acomodou-se como javax.swing No programa, definimos uma classe FirstFrame, que se comporta exatamente como a classe JFrame do pacote javax. Swing. O construtor de First frame coloca na barra de título a string "FirstFrame" e faz o tamanho do quadro ser de 300 x 200 pixels. A priore, um quadro tem largura e altura iguais a 0. O método main mostra o quadro e sai. Isso não termina o programa, mas apenas o subprocesso principal. A exibição da janela ativa um subprocesso de interface de usuário que man, têm o programa "vivo".

  Para mostrar realmente um quadro, devem-se executar os seguintes passos: · Criar o objeto quadro usando operador new. · Opcionalmente, posicioná-lo na tela do usuário usando o método setlocation. · Chamar o método show para tomar visível o quadro e trazê-lo para frente se estiver por trás de outra janela. A linha chave no método main do Exemplo é: JFrame frame = new FirstFrame(); Essa linha cria um novo FirstFrame fornecendo todas as informações necessárias para que o sistema de controle de janelas subjacente exiba uma janela. A chamada de new não exibe o quadro; como mencionamos. É necessário usar os métodos show ou setvisible para efetivamente fazer o quadro aparecer na tela.

O padrão é de quadros visíveis tenham dimensões O x O pixels, antes que se possa ver um quadro torna-se necessário especificar suas dimensões. No Exemplo fizemos 300 pixels de largura por 200 pixels de altura usando o método setsize no construtor do quadro. Finalmente, o quadro vai aparecer no canto superior esquerdo pois não usamos o método setlocation a fim de reposicioná-lo. Podemos ter um código para criar e mostrar o quadro colocado no método main da própria classe.   public class FirstFrame extends Jframe { public FirstFrame () { setTitle('FirstFrame'); setsize (300, 200) } public satatic void main(String[] args) {JFrame freme = new FirstFrame(); frame.show();

Como Encerrar Programas Gráficos   Usar o método main da classe frame para o código que instancia e exibe o quadro é mais simples no sentido de que não se precisa introduzir outra classe auxiliar para fazer isso. Alguns programadores consideram esse estilo de código mais confuso e preferem separar a classe que executa o programa da classe que controla a aparência e o comportamento do quadro. Como Encerrar Programas Gráficos   Há, infelizmente, um sério problema no programa FirstFrame. Se você executar o programa, vai descobrir que não há como sair dele! Não há nada óbvio que permita encerrar esse aplicativo, embora a janela possa ter sido ocultada. Você vai ver logo como escrever programas Swing que podem ser encerrados adequadamente.  Pode-se terminar o programa java pressionando ctrl,c ou dando um clique no botão Fechar no canto superior direito da janela do console, e, alternativamente, pode-se,, pressionar CTRL+ALT+DEL.

O AWT propicia uma classe chamada WindowAdapter .   class Terminator extends WindowAdapter { public void windowClosing (windowEvent e) System.exit(O); } Usando a mágica das classes anônimas, podemos até mesmo evitar dar um nome à    addwindowlistener (new WindowsAdapter ( ) { public void windowClosing(WindowEvent e) { System.exit(O); }); 

import java.awt.event.*; import javax.swing.*;   import java.awt.event.*; import javax.swing.*; class CloseableFrame extends Jframe { public CloseableFrame ( ) { setTitle(“CloseableFrame”);   setSize(300, 200); addWindowListener(new WindowAdapter ( ) { public void windowClosing(WindowEvent e) { System.exit( ); } });   public class CloseableTest { public static void main(String[] args) { JFrame frame = new CloseableFrame ( ) frame.showo;   }

Layout de Quadros A classe JFrame, por si mesma, somente tem alguns poucos métodos para alterar a disposição visual (layout) dos quadros. Evidentemente, através da mágica da herança, a maior parte dos métodos para se trabalhar o dimensionamento e o posicionamento de um quadro vêem das várias superclasses de JFrame. - O método dispose que fecha a janela e recupera os recursos do sistema usados em sua criação. - O método setIconImage que especifica um objeto image para ser usado como ícone quando a janela é minimizada . - O método settitle para mudar o texto da barra de título da janela.   - O método setResizeable, que toma um boolean para determinar se um quadro ser redimensionável pelo usuário.

Exibição de Informações em um Quadro Seria possível desenhar a string da mensagem diretamente num quadro, mas esta não seria considerada uma boa prática de programação. Em Java, os quadros são projetados realmente somente para serem contêineres de componentes como barras de menu e outros elementos de interface de usuário. Normalmente desenha-se em outro componente, chamado panel, que é adicionado ao quadro.  

A estrutura de um JFrame é surpreendentemente complexa.   A estrutura de um JFrame é surpreendentemente complexa. A parte que mais interessa aos programadores Swing é a área de conteúdo. Ao projetar um quadro, adicionam-se componentes à área de conteúdo usando código como o seguinte: Container painelconteudo = f rame. getContentPane ( ) Component c =“ ” ;   painelconteudo.add;  Em nosso caso, queremos adicionar um único painel à área de conteúdo na qual vamos desenhar a mensagem. Os painéis são implementados pela classe JPanel. Eles são elementos da interface de usuário com duas propriedades úteis: Eles têm uma superfície na qual se pode desenhar. Eles são, também, recipientes.

Objetos Gráficos e o Método paintcomponent Assim, eles podem conter outros componentes de interface como botões, botões deslizantes, etc. O código completo para adicionar um painel a um quadro é:  Container painelconteudo = frame.getContentPane ( ); JPanel p = new JPanel   painelconteudo. add (p) javax.swing.JFrame Container getContentPane ( ) retoma o objeto área de conteúdo deste JFrame. Objetos Gráficos e o Método paintcomponent Sempre que você precisar de um componente de interface de usuário que seja semelhante a um dos componentes Swing básicos, poderá usar herança para criar uma nova classe e depois sobrepor ou adicionar métodos para obter a funcionalidade extra necessária.

Por exemplo, nossas classes FirstFrame e CloseableFrame derivaram da classe Swing JFrame. Para desenhar em um painel, será necessário: Definir uma classe que estenda JFrame. Sobrepor o método paintcomponent dessa classe. O método paintcomponent está, na verdade, na classe icomponent, que é uma classe antecessora de todos os componentes Swing que não são de janela. Ele recebe um parâmetro do tipo Graphics. O parâmetro Graphics é semelhante a um contexto de dispositivo do Windows . Ele tem métodos para desenhar padrões, imagens e texto. Eis como fazer um painel no qual se pode desenhar: class MyPanel extends JPanel { public void paintComponent(Graphics g) o código para desenhar vai aqui Em geral, sempre que se quer colocar mensagens de texto ou gráficos em um painel, é necessário definir uma nova classe e sobrepor o método paintcomponent.  

Como vimos no código básico anterior, o método paintcomponent toma somente um único parâmetro do tipo Graphics. Um objeto Graphics lembra uma coleção de especificações para desenhar imagens e texto, como a fonte definida ou a cor atual. Toda ação de desenhar em java precisa usar um objeto Graphics. As medidas de um objeto Graphics para exibir na tela é feita em pixels. A coordenada (0,0) denota o canto superior esquerdo do componente em cuja superfície se está desenhando.   NOTA: Realmente, o argumento de paintcomponent é um objeto do tipo Graphics2D, uma subclasse da classe Graphics. A classe Graphics2D tem Métodos adicionais para desenhos mais sofisticados. A classe conceitualmente mais simples, Graphics, é suficiente para desenhos de linhas retas simples.

A exibição de texto (geralmente chamada de renderização de texto) é considerada um tipo especial de desenho. Por exemplo, um objeto Graphics tem um método drawstring que usa a sintaxe seguinte:  g.drawString(texto, Coordx, Coordy)  Em nosso caso, queremos desenhar a string 'Not a Hello, World program, em nossa janela original, aproximadamente a um quarto na horizontal e metade na vertical. O primeiro caractere da string vai começar numa posição 75 pixels a direita e 100 pixels para baixo. Assim, nosso método paintcomponent ficará assim:   class NotHelloworldPanel extends Jpanel { public void paintComponent(Graphics g) { .......... rotina de código, ver a seguir g.drawString('Not a Hello, World program', 75, 100); }  

Entretanto, esse método paintcomponent não está completo. A classe NotHelloWorldPanel estende a classe Tpanel, a qual tem sua própria idéia sobre como desenhar o painel, que é preenche-lo com a cor de fundo. Para ter certeza de que a superclasse faz sua parte do trabalho, precisamos chamar super.paintComponent antes de fazer qualquer desenho por conta própria.   class NotHelloWorldPanel extends Jpanel { public void paintComponent(Graphics g) { super.paintComponent(g);   g.drawstring(”Not a Hello, World program”, 75, 100); }

Exemplo : NotHelloWorldjava import java.awt.*; import java.awt.event.*; import javax.swing.*,, class NotHelloworldPanel extends Jpanel { public void paintComponent(Graphics g) { super.paintComponent(g);   g.drawString('Not a Hello, World program', 75, 100);  } } class NotHelloWorldFrame extends Jframe { public NotHelloWorldFrame ( ) { setTitle('NotHelloWorld'); setSize(300, 200); addWindowListener(new WindowAdaptero public void windowClosing(WindowEvent e) { System.exit(O); }); Container contentpane = getContentPaneo; contentpane.add(new NotHelloworldPane ( )); public class NotHelloWorld { public static void main(String[] args) { JFrame freme = new NotHelloWorldFrame ( ); frame.show ( );  } }