SlideShare uma empresa Scribd logo
1 de 22
Baixar para ler offline
CENTRO FEDERAL DE EDUCAÇÃO TECNOLOGICA DO ESTADO DE ALAGOAS
COORDENADORIA DE INFORMATICA
LINGUAGEM DE PROGRAMAÇAO II
PROFESSOR MARCILIO JUNIOR
CAPACIDADES GRÁFICAS DA PLATAFORMA
JAVA
Giovanni de A. Calheiros
João Paulo de Lima Braga
Michel Alves dos Santos
Maceió, 16 de Fevereiro de 2004
CENTRO FEDERAL DE EDUCAÇÃO TECNOLOGICA DO ESTADO DE ALAGOAS
COORDENADORIA DE INFORMATICA
LINGUAGEM DE PROGRAMAÇAO II
PROFESSOR MARCILIO JUNIOR
CAPACIDADES GRÁFICAS DA PLATAFORMA
JAVA
Giovanni de A. Calheiros
João Paulo de Lima Braga
Michel Alves dos Santos
Maceió, 16 de Fevereiro de 2004
Introdução
Esta apresentação visa mostrar o funcionamento das capacidades gráficas que a
plataforma de programação JAVA oferece, detalhando sua implementação,
comunicação com o sistema operacional, classes disponíveis e utilização das mesmas.
Tanto AWT quanto Swing terão abordados: suas características principais, modo de
desenho, abordagem de performance e portabilidade, além de suas diferenças. Será
dado uma ênfase ao Swing, devido aos novos componentes oferecidos, que resolvem
alguns problemas encontrados na utilização da AWT. Serão apresentados alguns
exemplos de painéis, utilizando componentes do pacote Swing.
AWT  Abstract Windowing Toolkit – Caixa de ferramentas para
janelamento abstrato
Primeiro sistema de janelamento introduzido na plataforma JAVA, tendo por
base as diretrizes de cada sistema de janelamento (MOTIF – CDE, Windows GUI, MAC
GUI,...). Considerado pesado por muitos programadores, e além disso não tão
extensível pois a possibilidade de manufatura de componentes torna-se um trabalho
árduo. Resolvia a maioria dos problemas de programação, com base na criatividade do
programador, pois não dispunha de componentes hoje existentes em Swing. Seríamos
eufêmicos ao dizer que AWT usa por base apenas as diretivas do sistema nativo, seu
acoplamento é mais enraizado, pois o desenho e a execução GUI fica por conta da
plataforma nativa, ou seja pela API do SO. Os componentes do pacote java.awt são
diretamente relacionados com as capacidades gráficas da plataforma hospedeiro. O
segredo é que o AWT executa apenas as funções comuns a todos os sistemas de
janela. Dessa forma, um mesmo programa JAVA pode apresentar aparências diversas,
quando executado em diferentes plataformas. O que causa uma sensível perda em
performance e portabilidade. Para contornar a maioria dos problemas de janelamento
uma classe de controle do ambiente foi introduzida, seu nome é GraphicsEnviroment
(classe responsável por armazenar todo o contexto de ambiente da plataforma que
hospeda a aplicação; exemplo: resolução presente, resolução máxima, profundidade de
cores em bits, cartão gráfico, número de ambientes em que esta rodando – terminais).
Mesmo assim os problemas de programação que necessitassem de um pouco
mais desse sistema encontrariam barreiras que poderiam ser facilmente transpostas
por meio de plataformas de programação RAD tais como: VB, Delphi, Clarion, TCL/TK,
GTK, Glade, Lazarus, Visual C++, C Builder, claro que não alcançando a mesma
portabilidade que a linguagem JAVA propunha.
Além disso AWT conta apenas com um PLAF (Plataform Look-and-Feel) ou seja,
uma única forma de apresentação da sua GUI variando de plataforma para
plataforma.
Java em AWT utiliza os chamados objetos equivalentes (bibliotecas .peer –
bibliotecas que fazem referência a GUI do sistema operacional. Exemplo: peer do
Windows, peer do MAC, peer MOTIF/CDE). Quase todos os componentes da AWT são
sub classes da classe Component.
Visão hierárquica da classe Component
java.lang.Object
|
+-- java.awt.Component
|
+--java.awt.Container
|
+--java.awt.Window
| |
| +--java.awt.Dialog
| | |
| | +--java.awt.FileDialog
| |
| +--java.awt.Frame
|
+--java.awt.Panel
|
+--java.applet.Applet
Código para uso de frames em AWT.
/**
*class : AWTFrame – Exemplo que ilustra o uso de frames no AWT.
*@author : Turma de Java 2003.2
*data : 16/02/2004
**/
import java.awt.*;
import java.awt.event.*;
/**Classe que extende a classe Frame do sistema AWT*/
public class AWTFrame extends Frame {
/**Metodo principal*/
public static void main (String args[]){
AWTFrame fu = new AWTFrame();
fu.addWindowListener( new WindowAdapter() {
public void windowClosing(WindowEvent e) {
System.exit(0);
}
});
/**Propriedades*/
fu.setTitle("AWTFrame");
fu.setLocation(200,200);
fu.setSize(400,200);
fu.setVisible(true); //O metodo show() está ultrapassado.
}
/**Metodo de renderização ou pintura de todos as classes
*que derivam de component - ou melhor classes gráficas*/
public void paint(Graphics g){
g.setColor(Color.black);
g.drawRect(100,70,90,55);
g.fillRect(200,70,90,55);
}
}
Visão dos Frames AWT
Frame awt sem sobreposição do método paint(). Awt não define por padrão o evento de janela
windowClosing, por isso esse deve ser implementado. Diferente do sistema Swing que tem seu método
setDefaultCloseOperation disparado automaticamente nesse evento.
Frame awt com sobreposição do método paint(). É definido dentro do método o desenho de dois
retângulos, um não preenchido e o outro totalmente. Nota-se que os frames awt tem por padrão o
preenchimento na cor branca.
Hierarquia dos componentes da AWT, mostrando os que herdam e os que extendem.
Diagrama ou hierarquia das classes java.awt.peer, que é a implementação nativa dos componentes
GUI da plataforma hospedeira. Essas classes recebem as solicitações feitas pelos componentes da AWT, tal
como execução de um método.
Criação de um botão. Veja a comunicação que é feita com a biblioteca peer da plataforma
hospedeira. Abaixo, a execução do método setLabel().
SWING  seguindo a tendência de nomenclatura usando
nome de ritmos musicais.
Sistema de janelamento introduzido na plataforma JAVA para solucionar alguns
problemas decorrentes do projeto da AWT. O pacote Swing é parte do Java Foundation
Classes (JFC) da plataforma Java. O JFC engloba um grupo de características para
ajudar pessoas a construir GUIs. Swing usa por base toda a implementação de
diretrizes da AWT e da classe GraphicsEnviroment, mas um ponto essencial deve ser
apresentado: o janelamento é feito pelo próprio SWING, ou seja, a própria JVM executa
o desenho dos componentes; pode parecer um trabalho extensivo, mas essa execução
poupa muito da implementação especifica, que seria ajustada para cada forma de
janelamento, fazendo com que esse sistema torne-se ainda mais portável, contando
dessa forma com uma grande gama de componentes que podem ser estendidos,
adaptados, combinado e “remanufatrados”.
Swing torna a plataforma JAVA uma “suíte de desenvolvimento” à altura de
linguagens RAD (VB, Delphi, Clarion, Visual C++, Visual Cobol, etc), disponibilizando
as mesmas facilidades de desenho de interfaces, um completo sistema de cores,
painéis especializados e componentes com alta facilidade de integração, mas para que
essas facilidade sejam usufruídas uma IDE deve ser utilizada, pois o pacote JSDK da
SUN não acompanha uma ferramenta de desenho de interfaces. Exemplo: NetBeans,
Visual Café, Eclipse, Forte, dentre outras.
Arquitetura gráfica da plataforma hospedeira, demonstrando a extensão do sistema de janelamento Swing.
No AWT não são encontrados painéis especializados como JdesktopPane ou
JInternalFrame, o último muito utilizado na implementação de aplicações MDI(Multiple
Data Interface), essa aplicação é essencialmente constituída de uma Janela mestre e
as demais subordinadas a esta, daí a necessidade de janelas filho ou janelas internas.
Antes (no AWT) os frames filhos eram apenas frames normais que tinham a opção
Frame.CHILD setada. No decorrer do trabalho serão apresentados os componentes
mais utilizados que constituem o pacote javax.swing: JFrame, JPanel, JInternalFrame,
JLabel, JButton, JToggleButton, JCheckBox, JRadioButton, ButtonGroup, JList,
JTextField, JTextArea, JTabbedPane, JScrollBar, JScrollPane, JPopupMenu, JComboBox,
JMenu, JMenuBar, JMenuItem, JCheckBoxMenuItem, JRadioButtonMenuItem,
JOptionPane, JTable, JToolBar, dentre vários outros.
Look-and-Feel das janelas do pacote javax.swing. Este PLAF, é chamado de cross-plataform ou metal.
Hierarquia da classe JFrame, mostrando sua derivação da classe Frame do pacote AWT. Diferentemente de
Frame os objetos da classe Jframe tem alguma noção de como responder a ação de fechar janela imposta
pelo usuário. Por padrão a janela é escondida quando o usuário executa ação. O método que é executado
decorrente a ação pode ter seu valor mudado pelo método setDefaultCloseOperation() que recebe um
inteiro para indicar a ação padrão de fechamento da janela (DO_NOTHING_ON_CLOSE, HIDE_ON_CLOSE,
DISPOSE_ON_CLOSE, EXIT_ON_CLOSE – em exit_on_close o método exit da classe system é chamado,
enquanto que em dispose apenas a janela é fechada liberando os recursos que ela alocou).
Especificação das novas classes implementadas em Java, incorporadas à nova especificação do JSDK, está
visível na figura que o pacote swing herda do pacote awt, dispensando seus problemas e utilizando suas
qualidades. Uma verdadeira filtragem em suas propriedades (widgets). A especificação JFC tende a separar
os pacotes java2D e java3D e os mecanismos de drag-and-drop. Mas todos eles estão dentro da mesma
especificação.
A Relação entre os pacotes AWT e Swing das versões 1.1 e 1.2, quando deixou de ser uma biblioteca (.jar)
para integrar o pacote.
java.lang.Object
|
+--java.awt.Component
|
+--java.awt.Container
|
+--java.awt.Window
|
+--java.awt.Frame
|
+--javax.swing.JFrame
Hierarquia das classes do pacote javax.swing, observando os componentes top-levels. Esses componentes
derivam da classe JPanel: JApplet, JDialog, JFrame, JWindow. As classes representadas por um
paralelogramo são classes abstratas, que só podem ser herdadas.
Diagrama de classe de uma JButton
ALGUNS COMPONENTES SWING. Aqui estão algumas dos componentes comumente
utilizados:
JButtons JComboBox JList
JDialog JMenu
LOOK-AND-FEEL. O pacote javax.swing possui 4 formas de visualização de sua GUI
usado em suas componentes, são elas : Java Look and Feel ( Metal/CrossPlataform ),
CDE/Motif Look and Feel, MAC Look and Feel e Windows Look and Feel. Tendo presente
a forma MAC Look and Feel apenas nas plataformas Macintosh. Veja o exemplo abaixo:
Java look and feel
CDE/Motif look and feel
Windows look and feel
JScrollPane JFrame
JTable (conhecido como grid em outras plataformas)
O exemplo acima pode ser adquirido no site da sun na seguinte url :
http://java.sun.com/docs/books/tutorial/uiswing/mini/secondexample.html , lá o leitor
encontrará a classe SimpleExample.java, que mostra de forma básica de como mudar
a visualização para a GUI de sua escolha. Logo abaixo temos a visualização de alguns
componentes e seus respectivos look and feels: Metal, MAC, Motif.
Formas de apresentação da GUI em java.
Exemplo de caixas de alerta em Windows, CDE e plataforma Macintosh
Tabela com nomes de componentes da JFC. Logo abaixo temos uma lista de
componentes da JFC (especificação java para novas classes). É notória a superioridade
em número de componentes Swing em relação a lista de componentes AWT
apresentada na página número 7 deste trabalho. Essa lista foi tirada da seguinte
página da sun :http://java.sun.com/products/jlf/ed2/book/HIG.Classes2.html#39575,
essa página faz parte da seção sobre o livro “Java Look and Feel Design Guidelines,
second edition.”
Componente Nome Nome Comum
JApplet Applet
JButton Command button e toolbar button
JCheckBox Checkbox
JCheckBoxMenuItem Checkbox menu item
JColorChooser Color chooser
JComboBox Noneditable e editable combo boxes
JDesktopPane Backing window
JDialog
Dialog box, secondary window, e utility
window
JEditorPane Editor pane
JFrame Primary window
JInternalFrame
Internal window, minimized internal
window, e internal utility window
JLabel Label
JList
List components (list boxes e e listas
selecionáveis)
JMenu Drop-down menu e submenu
JMenuBar Menu bar
JMenuItem Menu item
JOptionPane Alert box/Caixa de alerta
JPanel Panel
JPasswordField Password field/Campo de senha
JPopupMenu Contextual menu
JProgressBar Progress bar/Barra de progresso
JRadioButton Radio button
JRadioButtonMenuIte
m Radio button menu item
JScrollBar Scrollbar
JScrollPane Scroll pane
JSeparator Separator
JSlider Slider
JSplitPane Split pane
JTabbedPane Tabbed pane
JTable Table
JTextArea Plain text area
JTextField
Noneditable e editable text fields (single
line)
JTextPane
Editor pane com editor kit plug-in
estilizado.
JToggleButton Toggle button e toolbar toggle button
JToolBar Toolbar
JToolTip Tool tip/rótulo de dicas
JTree Tree component/Árvore
JWindow Janela Plana, sem barra de título.
GERENCIADORES DE EVENTOS. No exata momento em que optamos por trabalhar
com interfaces gráficas, temos que aprender a lidar com os eventos. As interfaces
gráficas são elementos baseados em eventos. De uma maneira geral eventos são
interações disparadas por usuários ou pelo próprio sistema. Mover o mouse é um
evento, fechar uma janela é um outro evento. Eventos ocorrem a todo instante nos
aplicativo modernos e, portanto devemos compreender como tratá-los. Quando um
usúario interage com um objeto da interface gráfica, um evento é enviado
automaticamente para o programa, na expectativa de que ele seja identificado e
convenientemente tratado para produzir algum tipo de resposta à ação realizada sobre
o objeto.
O processamento de um evento exige duas providências :
1 – Registrar um ouvinte de eventos (listener);
2 – Implementar um manipulador de eventos (handler).
O registro de eventos se processa através de interfaces disponibilizadas por
pacotes do Java, como java.awt.event e javax.swing.event. Há, em Java, diversos
tipos de ouvintes de eventos. A interface EventListener, disponibilizada pelo pacote
java.util, deriva diversas sub-interfaces que se preocupam em ouvir eventos
específicos.
Listamos abaixo, as que julgamos mais utilizadas :
ActionListener – eventos de ação: clicar num botão.
ComponentListener – eventos de componentes: redimensionar uma janela.
ContainerLIstener - eventos de contêineres : adicionar ou remover um objeto
de um contêiner.
FocusListener – eventos relacionados ao foco dos objetos : quando um objeto
recebe ou perde o foco.
KeyListener – recebe eventos relacionados ao teclado.
MouseListener – eventos relacionados ao mouse.
WindowListener – eventos relacionados as janelas : redimensionar,
minimizar, fechar, etc.
Exemplo : Trecho de código referente ao registro de um ouvinte e implementação de um handler
para um evento de janela.
frameExemplo.addWindowListener( new WindowAdapter() {
public void windowClosing(WindowEvent e) {
System.exit(0);
}
});
Logo abaixo a lista com a hierarquia de interfaces do pacote java.awt.event:
Hierarquia de Interfaces
interface java.util.EventListener
interface java.awt.event.ActionListener
interface java.awt.event.AdjustmentListener
interface java.awt.event.AWTEventListener
interface java.awt.event.ComponentListener
interface java.awt.event.ContainerListener
interface java.awt.event.FocusListener
interface java.awt.event.HierarchyBoundsListener
interface java.awt.event.HierarchyListener
interface java.awt.event.InputMethodListener
interface java.awt.event.ItemListener
interface java.awt.event.KeyListener
interface java.awt.event.MouseListener
interface java.awt.event.MouseMotionListener
interface java.awt.event.MouseWheelListener
interface java.awt.event.TextListener
interface java.awt.event.WindowFocusListener
interface java.awt.event.WindowListener
interface java.awt.event.WindowStateListener
ActionListener : Uma pequena ilustração sobre o evento action listener.
ActionListener é uma interface Java implementada por muitos componentes da GUI,
tais como botões. Tem somente um método – actionPerformed. Aqui esta sua
definição:
public Interface ActionListener {
public void actionPerformed(ActionEvent e)
}
GERENCIADORES DE LAYOUT. Na tentativa de facilitar as coisas para os
programadores, Java oferece classes que especificam como os componentes devem ser
posicionados em um contêiner. Essas classes são conhecidas como gerenciadores de
layout. Os tipos propostos pela linguagem são : Border Layout , Flow Layout, Grid
Layout, Box, Card, GridBag e Null Layout (que na verdade não é um gerenciador mas
sim a falta de um). Vamos falar sobre alguns deles.
Border Layout. Gerenciador padrão dos objetos JFrame, de acordo com esse
gerenciador o conteiner pode ser visto como uma área dividida em cinco regiões :
Norte, Sul, Leste , Oeste e Centro. Em cada uma dessas áreas um novo objeto pode ser
inserido , podendo esse novo objeto um conteiner com o seu próprio gerenciador de
layout.
Border Layout
Flow Layout. Gerenciador de layout baseado em fluxo, sendo a disposição dos objetos
adicionados da esquerda para a direita e , em seguida, centralizados na ordem que são
adicionados ao conteiner.
Flow Layout
Card Layout. Permite empilhar objetos como se fossem cartas de um baralho.
Podemos colocar painéis uns em cima dos outros ...
... e podemos visualizá-los no momento em que quisermos.
Grid Layout. Define um layout em forma de grade, com o número de linhas
necessárias para conter os objetos. O detalhe é que os objetos serão sempre do
mesmo tamanho e se ajustarão automaticamente a qualquer variação no tamanho da
janela.
Grid Layout.
Grid Layout. A exemplo do gerenciador GridLayout, também organiza objetos em uma
grade. Entretanto trata-se de um gerenciador muito mais flexível, poderoso e
complexo, permitindo alinhar objetos vertical e horizontalmente, sem impor que todos
os objetos tenham o mesmo tamanho.
GridBag Layout
REFERÊNCIAS BIBLIOGRÁFICAS
JAVA 2, Fundamentos, Swing e JDBC. Ivan Mecenas.
Java NutShell, Editora O´reilly.
Java como programar , Deitel.
REFERÊNCIAS ELETRÔNICAS
http://java.sun.com
http://java.sun.com/products/jfc/tsc/articles/jlf-design/
http://java.sun.com/developer/techDocs/hi/repository/index.html
http://java.sun.com/products/jlf/at/book/
http://java.sun.com/developer/techDocs/hi/repository/
http://java.sun.com/products/jlf/ed2/guidelines.html
http://java.sun.com/developer/techDocs/hi/repository/TBG_Text.html
http://java.sun.com/products/jfc/tsc/articles/jlf-metal-report/
http://java.sun.com/developer/techDocs/hi/repository/TBG_Table.html
http://java.sun.com/developer/techDocs/hi/repository/TBG_Navigation.html
http://java.sun.com/developer/techDocs/hi/repository/TBG_Media.html
http://java.sun.com/developer/techDocs/hi/repository/TBG_Development.html
http://java.sun.com/products/jlf/ed2/book/HIG.Visual.html
http://java.sun.com/products/jlf/ed2/book/HIG.Visual2.html

Mais conteúdo relacionado

Mais procurados

Curso Java Basico
Curso Java BasicoCurso Java Basico
Curso Java BasicoJoel Lobo
 
Programação Orientada a Objetos com Java
Programação Orientada a Objetos com JavaProgramação Orientada a Objetos com Java
Programação Orientada a Objetos com JavaÁlvaro Farias Pinheiro
 
Design Pattern MVC – Arquitetura de Software Coesa e Flexível
Design Pattern MVC – Arquitetura de Software Coesa e FlexívelDesign Pattern MVC – Arquitetura de Software Coesa e Flexível
Design Pattern MVC – Arquitetura de Software Coesa e FlexívelRyan Padilha
 
Java programação orientada a objetos
Java   programação orientada a objetosJava   programação orientada a objetos
Java programação orientada a objetosPaulo Carvalho
 
Construção de Frameworks com Annotation e Reflection API em Java
Construção de Frameworks com Annotation e Reflection API em JavaConstrução de Frameworks com Annotation e Reflection API em Java
Construção de Frameworks com Annotation e Reflection API em JavaFernando Camargo
 
Java Day 2011 - Reflection: Maximizando a produtividade em Java
Java Day 2011 - Reflection: Maximizando a produtividade em JavaJava Day 2011 - Reflection: Maximizando a produtividade em Java
Java Day 2011 - Reflection: Maximizando a produtividade em JavaFábio Antonelli
 
Microsoft Tech·Ed Brasil 2010: DEV302 - Como e onde devo utilizar o Managed E...
Microsoft Tech·Ed Brasil 2010: DEV302 - Como e onde devo utilizar o Managed E...Microsoft Tech·Ed Brasil 2010: DEV302 - Como e onde devo utilizar o Managed E...
Microsoft Tech·Ed Brasil 2010: DEV302 - Como e onde devo utilizar o Managed E...Rogério Moraes de Carvalho
 
Orientação a Objetos no Delphi - Controle de Estoque (II)
Orientação a Objetos no Delphi - Controle de Estoque (II)Orientação a Objetos no Delphi - Controle de Estoque (II)
Orientação a Objetos no Delphi - Controle de Estoque (II)Ryan Padilha
 
Módulo 9 - Introdução à Programação Orientada a Objectos
Módulo 9 - Introdução à Programação Orientada a Objectos Módulo 9 - Introdução à Programação Orientada a Objectos
Módulo 9 - Introdução à Programação Orientada a Objectos Luis Ferreira
 
Linguagem de Programação Java para Iniciantes
Linguagem de Programação Java para IniciantesLinguagem de Programação Java para Iniciantes
Linguagem de Programação Java para IniciantesOziel Moreira Neto
 
Introdução à Programação em Java - Aula 1 (PT-PT)
Introdução à Programação em Java - Aula 1 (PT-PT)Introdução à Programação em Java - Aula 1 (PT-PT)
Introdução à Programação em Java - Aula 1 (PT-PT)Manoel Campos da Silva Filho
 
Orientação a Objetos no Delphi - Controle de Estoque (III)
Orientação a Objetos no Delphi - Controle de Estoque (III)Orientação a Objetos no Delphi - Controle de Estoque (III)
Orientação a Objetos no Delphi - Controle de Estoque (III)Ryan Padilha
 
Padrões de projeto - Martin Fowler - P of EAA
Padrões de projeto - Martin Fowler - P of EAAPadrões de projeto - Martin Fowler - P of EAA
Padrões de projeto - Martin Fowler - P of EAAAricelio Souza
 
Padrão de Projeto - Adapter
Padrão de Projeto - AdapterPadrão de Projeto - Adapter
Padrão de Projeto - AdapterJuliana Cindra
 
Linguagem Java - Conceitos e Técnicas
Linguagem Java - Conceitos e TécnicasLinguagem Java - Conceitos e Técnicas
Linguagem Java - Conceitos e TécnicasBreno Vitorino
 

Mais procurados (20)

Educação e certificação na Plataforma .NET
Educação e certificação na Plataforma .NETEducação e certificação na Plataforma .NET
Educação e certificação na Plataforma .NET
 
Curso Java Basico
Curso Java BasicoCurso Java Basico
Curso Java Basico
 
Programação Orientada a Objetos com Java
Programação Orientada a Objetos com JavaProgramação Orientada a Objetos com Java
Programação Orientada a Objetos com Java
 
Tutorial Java EE
Tutorial Java EETutorial Java EE
Tutorial Java EE
 
Design Pattern MVC – Arquitetura de Software Coesa e Flexível
Design Pattern MVC – Arquitetura de Software Coesa e FlexívelDesign Pattern MVC – Arquitetura de Software Coesa e Flexível
Design Pattern MVC – Arquitetura de Software Coesa e Flexível
 
Mvc delphi
Mvc delphiMvc delphi
Mvc delphi
 
Java programação orientada a objetos
Java   programação orientada a objetosJava   programação orientada a objetos
Java programação orientada a objetos
 
Construção de Frameworks com Annotation e Reflection API em Java
Construção de Frameworks com Annotation e Reflection API em JavaConstrução de Frameworks com Annotation e Reflection API em Java
Construção de Frameworks com Annotation e Reflection API em Java
 
Java Day 2011 - Reflection: Maximizando a produtividade em Java
Java Day 2011 - Reflection: Maximizando a produtividade em JavaJava Day 2011 - Reflection: Maximizando a produtividade em Java
Java Day 2011 - Reflection: Maximizando a produtividade em Java
 
Microsoft Tech·Ed Brasil 2010: DEV302 - Como e onde devo utilizar o Managed E...
Microsoft Tech·Ed Brasil 2010: DEV302 - Como e onde devo utilizar o Managed E...Microsoft Tech·Ed Brasil 2010: DEV302 - Como e onde devo utilizar o Managed E...
Microsoft Tech·Ed Brasil 2010: DEV302 - Como e onde devo utilizar o Managed E...
 
Orientação a Objetos no Delphi - Controle de Estoque (II)
Orientação a Objetos no Delphi - Controle de Estoque (II)Orientação a Objetos no Delphi - Controle de Estoque (II)
Orientação a Objetos no Delphi - Controle de Estoque (II)
 
X-Zone Road-Map 2009
X-Zone Road-Map 2009X-Zone Road-Map 2009
X-Zone Road-Map 2009
 
Módulo 9 - Introdução à Programação Orientada a Objectos
Módulo 9 - Introdução à Programação Orientada a Objectos Módulo 9 - Introdução à Programação Orientada a Objectos
Módulo 9 - Introdução à Programação Orientada a Objectos
 
Linguagem de Programação Java para Iniciantes
Linguagem de Programação Java para IniciantesLinguagem de Programação Java para Iniciantes
Linguagem de Programação Java para Iniciantes
 
Introdução à Programação em Java - Aula 1 (PT-PT)
Introdução à Programação em Java - Aula 1 (PT-PT)Introdução à Programação em Java - Aula 1 (PT-PT)
Introdução à Programação em Java - Aula 1 (PT-PT)
 
Orientação a Objetos no Delphi - Controle de Estoque (III)
Orientação a Objetos no Delphi - Controle de Estoque (III)Orientação a Objetos no Delphi - Controle de Estoque (III)
Orientação a Objetos no Delphi - Controle de Estoque (III)
 
Padrões de projeto - Martin Fowler - P of EAA
Padrões de projeto - Martin Fowler - P of EAAPadrões de projeto - Martin Fowler - P of EAA
Padrões de projeto - Martin Fowler - P of EAA
 
Padrão de Projeto - Adapter
Padrão de Projeto - AdapterPadrão de Projeto - Adapter
Padrão de Projeto - Adapter
 
Linguagem Java - Conceitos e Técnicas
Linguagem Java - Conceitos e TécnicasLinguagem Java - Conceitos e Técnicas
Linguagem Java - Conceitos e Técnicas
 
Conhecendo Java
Conhecendo JavaConhecendo Java
Conhecendo Java
 

Destaque

Kant, el filòsof de la raó
Kant, el filòsof de la raóKant, el filòsof de la raó
Kant, el filòsof de la raólesperlesnegres
 
Do esplendor medieval a decadencia dos seulos escuros
Do esplendor medieval a decadencia dos seulos escurosDo esplendor medieval a decadencia dos seulos escuros
Do esplendor medieval a decadencia dos seulos escuroscarmeveiga3b
 
Visita ao mercad
Visita ao mercadVisita ao mercad
Visita ao mercadana costa
 
Ones de cabell retro.
Ones de cabell retro.Ones de cabell retro.
Ones de cabell retro.sarasareta
 
Karla gallegos
Karla gallegosKarla gallegos
Karla gallegoskarla66666
 
数字电路简明教程[1]
数字电路简明教程[1]数字电路简明教程[1]
数字电路简明教程[1]yangkun521316
 

Destaque (9)

Kant, el filòsof de la raó
Kant, el filòsof de la raóKant, el filòsof de la raó
Kant, el filòsof de la raó
 
Instituto Cervantes
Instituto CervantesInstituto Cervantes
Instituto Cervantes
 
France from above
France from aboveFrance from above
France from above
 
Do esplendor medieval a decadencia dos seulos escuros
Do esplendor medieval a decadencia dos seulos escurosDo esplendor medieval a decadencia dos seulos escuros
Do esplendor medieval a decadencia dos seulos escuros
 
Banyoles
BanyolesBanyoles
Banyoles
 
Visita ao mercad
Visita ao mercadVisita ao mercad
Visita ao mercad
 
Ones de cabell retro.
Ones de cabell retro.Ones de cabell retro.
Ones de cabell retro.
 
Karla gallegos
Karla gallegosKarla gallegos
Karla gallegos
 
数字电路简明教程[1]
数字电路简明教程[1]数字电路简明教程[1]
数字电路简明教程[1]
 

Semelhante a Capacidades gráficas da plataforma Java

Como construir aplicações gráficas e applets
Como construir aplicações gráficas e appletsComo construir aplicações gráficas e applets
Como construir aplicações gráficas e appletsDenis L Presciliano
 
Como construir aplicações gráficas e applets
Como construir aplicações gráficas e appletsComo construir aplicações gráficas e applets
Como construir aplicações gráficas e appletsDenis L Presciliano
 
Arquitetura de apis gráficas do java dtv - lwuit e dtv-ui
Arquitetura de apis gráficas do java dtv - lwuit e dtv-uiArquitetura de apis gráficas do java dtv - lwuit e dtv-ui
Arquitetura de apis gráficas do java dtv - lwuit e dtv-uiErisvaldo Junior
 
Integração de Tecnologias
Integração de TecnologiasIntegração de Tecnologias
Integração de Tecnologiaselliando dias
 
lista de exercícios de estrutura de dados Básico primeira prova
lista de exercícios de estrutura de dados Básico primeira prova lista de exercícios de estrutura de dados Básico primeira prova
lista de exercícios de estrutura de dados Básico primeira prova Rogério Cardoso
 
Java fx para o mercado embedded com raspberry pi
Java fx para o mercado embedded com raspberry piJava fx para o mercado embedded com raspberry pi
Java fx para o mercado embedded com raspberry piClaudiney Marques
 
Paradigmas de Linguagens de Programação - Modularização, componentização e re...
Paradigmas de Linguagens de Programação - Modularização, componentização e re...Paradigmas de Linguagens de Programação - Modularização, componentização e re...
Paradigmas de Linguagens de Programação - Modularização, componentização e re...Adriano Teixeira de Souza
 

Semelhante a Capacidades gráficas da plataforma Java (20)

Pacote swing
Pacote swingPacote swing
Pacote swing
 
Como construir aplicações gráficas e applets
Como construir aplicações gráficas e appletsComo construir aplicações gráficas e applets
Como construir aplicações gráficas e applets
 
Como construir aplicações gráficas e applets
Como construir aplicações gráficas e appletsComo construir aplicações gráficas e applets
Como construir aplicações gráficas e applets
 
Arquitetura de apis gráficas do java dtv - lwuit e dtv-ui
Arquitetura de apis gráficas do java dtv - lwuit e dtv-uiArquitetura de apis gráficas do java dtv - lwuit e dtv-ui
Arquitetura de apis gráficas do java dtv - lwuit e dtv-ui
 
JAVA REFLETCION
JAVA REFLETCIONJAVA REFLETCION
JAVA REFLETCION
 
Java1
Java1Java1
Java1
 
Integração de Tecnologias
Integração de TecnologiasIntegração de Tecnologias
Integração de Tecnologias
 
lista de exercícios de estrutura de dados Básico primeira prova
lista de exercícios de estrutura de dados Básico primeira prova lista de exercícios de estrutura de dados Básico primeira prova
lista de exercícios de estrutura de dados Básico primeira prova
 
GUI Aplicações Gráficas
GUI Aplicações Gráficas GUI Aplicações Gráficas
GUI Aplicações Gráficas
 
Apostila JavaME
Apostila JavaMEApostila JavaME
Apostila JavaME
 
Introducao ao J2ME
Introducao ao J2MEIntroducao ao J2ME
Introducao ao J2ME
 
Minicurso Java
Minicurso JavaMinicurso Java
Minicurso Java
 
Visualg2_manual.pdf
Visualg2_manual.pdfVisualg2_manual.pdf
Visualg2_manual.pdf
 
Aula1
Aula1Aula1
Aula1
 
Java fx para o mercado embedded com raspberry pi
Java fx para o mercado embedded com raspberry piJava fx para o mercado embedded com raspberry pi
Java fx para o mercado embedded com raspberry pi
 
Paradigmas de Linguagens de Programação - Modularização, componentização e re...
Paradigmas de Linguagens de Programação - Modularização, componentização e re...Paradigmas de Linguagens de Programação - Modularização, componentização e re...
Paradigmas de Linguagens de Programação - Modularização, componentização e re...
 
Introdução a tecnologia Java
Introdução a tecnologia JavaIntrodução a tecnologia Java
Introdução a tecnologia Java
 
Introdução a tecnologia Java
Introdução a tecnologia JavaIntrodução a tecnologia Java
Introdução a tecnologia Java
 
JavaFx - Introdução
JavaFx - IntroduçãoJavaFx - Introdução
JavaFx - Introdução
 
Eclipse uml
Eclipse umlEclipse uml
Eclipse uml
 

Mais de Michel Alves

Texture Synthesis: An Approach Based on GPU Use
Texture Synthesis: An Approach Based on GPU UseTexture Synthesis: An Approach Based on GPU Use
Texture Synthesis: An Approach Based on GPU UseMichel Alves
 
Intelligent Transfer of Thematic Harmonic Color Palettes
Intelligent Transfer of Thematic Harmonic Color PalettesIntelligent Transfer of Thematic Harmonic Color Palettes
Intelligent Transfer of Thematic Harmonic Color PalettesMichel Alves
 
A Framework for Harmonic Color Measures
A Framework for Harmonic Color MeasuresA Framework for Harmonic Color Measures
A Framework for Harmonic Color MeasuresMichel Alves
 
Effectiveness of Image Quality Assessment Indexes
Effectiveness of Image Quality Assessment IndexesEffectiveness of Image Quality Assessment Indexes
Effectiveness of Image Quality Assessment IndexesMichel Alves
 
Introduction to Kernel Functions
Introduction to Kernel FunctionsIntroduction to Kernel Functions
Introduction to Kernel FunctionsMichel Alves
 
About Perception and Hue Histograms in HSV Space
About Perception and Hue Histograms in HSV SpaceAbout Perception and Hue Histograms in HSV Space
About Perception and Hue Histograms in HSV SpaceMichel Alves
 
Color Harmonization - Results
Color Harmonization - ResultsColor Harmonization - Results
Color Harmonization - ResultsMichel Alves
 
Wave Simulation Using Perlin Noise
Wave Simulation Using Perlin NoiseWave Simulation Using Perlin Noise
Wave Simulation Using Perlin NoiseMichel Alves
 
Similarity Maps Using SSIM Index
Similarity Maps Using SSIM IndexSimilarity Maps Using SSIM Index
Similarity Maps Using SSIM IndexMichel Alves
 
Qualifying Exam - Image-Based Reconstruction With Color Harmonization
Qualifying Exam - Image-Based Reconstruction With Color HarmonizationQualifying Exam - Image-Based Reconstruction With Color Harmonization
Qualifying Exam - Image-Based Reconstruction With Color HarmonizationMichel Alves
 
TMS - Schedule of Presentations and Reports
TMS - Schedule of Presentations and ReportsTMS - Schedule of Presentations and Reports
TMS - Schedule of Presentations and ReportsMichel Alves
 
Month Presentations Schedule - March/2015 - LCG/UFRJ
Month Presentations Schedule - March/2015 - LCG/UFRJMonth Presentations Schedule - March/2015 - LCG/UFRJ
Month Presentations Schedule - March/2015 - LCG/UFRJMichel Alves
 
Color Palettes in R
Color Palettes in RColor Palettes in R
Color Palettes in RMichel Alves
 
Hue Wheel Prototype
Hue Wheel PrototypeHue Wheel Prototype
Hue Wheel PrototypeMichel Alves
 
Triangle Mesh Plot
Triangle Mesh PlotTriangle Mesh Plot
Triangle Mesh PlotMichel Alves
 
Capacity-Constrained Point Distributions :: Video Slides
Capacity-Constrained Point Distributions :: Video SlidesCapacity-Constrained Point Distributions :: Video Slides
Capacity-Constrained Point Distributions :: Video SlidesMichel Alves
 
Capacity-Constrained Point Distributions :: Density Function Catalog
Capacity-Constrained Point Distributions :: Density Function CatalogCapacity-Constrained Point Distributions :: Density Function Catalog
Capacity-Constrained Point Distributions :: Density Function CatalogMichel Alves
 

Mais de Michel Alves (20)

Texture Synthesis: An Approach Based on GPU Use
Texture Synthesis: An Approach Based on GPU UseTexture Synthesis: An Approach Based on GPU Use
Texture Synthesis: An Approach Based on GPU Use
 
Intelligent Transfer of Thematic Harmonic Color Palettes
Intelligent Transfer of Thematic Harmonic Color PalettesIntelligent Transfer of Thematic Harmonic Color Palettes
Intelligent Transfer of Thematic Harmonic Color Palettes
 
A Framework for Harmonic Color Measures
A Framework for Harmonic Color MeasuresA Framework for Harmonic Color Measures
A Framework for Harmonic Color Measures
 
Effectiveness of Image Quality Assessment Indexes
Effectiveness of Image Quality Assessment IndexesEffectiveness of Image Quality Assessment Indexes
Effectiveness of Image Quality Assessment Indexes
 
Introduction to Kernel Functions
Introduction to Kernel FunctionsIntroduction to Kernel Functions
Introduction to Kernel Functions
 
About Perception and Hue Histograms in HSV Space
About Perception and Hue Histograms in HSV SpaceAbout Perception and Hue Histograms in HSV Space
About Perception and Hue Histograms in HSV Space
 
Color Harmonization - Results
Color Harmonization - ResultsColor Harmonization - Results
Color Harmonization - Results
 
Wave Simulation Using Perlin Noise
Wave Simulation Using Perlin NoiseWave Simulation Using Perlin Noise
Wave Simulation Using Perlin Noise
 
Similarity Maps Using SSIM Index
Similarity Maps Using SSIM IndexSimilarity Maps Using SSIM Index
Similarity Maps Using SSIM Index
 
Qualifying Exam - Image-Based Reconstruction With Color Harmonization
Qualifying Exam - Image-Based Reconstruction With Color HarmonizationQualifying Exam - Image-Based Reconstruction With Color Harmonization
Qualifying Exam - Image-Based Reconstruction With Color Harmonization
 
TMS - Schedule of Presentations and Reports
TMS - Schedule of Presentations and ReportsTMS - Schedule of Presentations and Reports
TMS - Schedule of Presentations and Reports
 
Month Presentations Schedule - March/2015 - LCG/UFRJ
Month Presentations Schedule - March/2015 - LCG/UFRJMonth Presentations Schedule - March/2015 - LCG/UFRJ
Month Presentations Schedule - March/2015 - LCG/UFRJ
 
Color Palettes in R
Color Palettes in RColor Palettes in R
Color Palettes in R
 
Sigmoid Curve Erf
Sigmoid Curve ErfSigmoid Curve Erf
Sigmoid Curve Erf
 
Hue Wheel Prototype
Hue Wheel PrototypeHue Wheel Prototype
Hue Wheel Prototype
 
Cosine Curve
Cosine CurveCosine Curve
Cosine Curve
 
Triangle Mesh Plot
Triangle Mesh PlotTriangle Mesh Plot
Triangle Mesh Plot
 
Triangle Plot
Triangle PlotTriangle Plot
Triangle Plot
 
Capacity-Constrained Point Distributions :: Video Slides
Capacity-Constrained Point Distributions :: Video SlidesCapacity-Constrained Point Distributions :: Video Slides
Capacity-Constrained Point Distributions :: Video Slides
 
Capacity-Constrained Point Distributions :: Density Function Catalog
Capacity-Constrained Point Distributions :: Density Function CatalogCapacity-Constrained Point Distributions :: Density Function Catalog
Capacity-Constrained Point Distributions :: Density Function Catalog
 

Último

Apostila da CONQUISTA_ para o 6ANO_LP_UNI1.pptx
Apostila da CONQUISTA_ para o 6ANO_LP_UNI1.pptxApostila da CONQUISTA_ para o 6ANO_LP_UNI1.pptx
Apostila da CONQUISTA_ para o 6ANO_LP_UNI1.pptxIsabelaRafael2
 
Slides Lição 4, CPAD, Como se Conduzir na Caminhada, 2Tr24.pptx
Slides Lição 4, CPAD, Como se Conduzir na Caminhada, 2Tr24.pptxSlides Lição 4, CPAD, Como se Conduzir na Caminhada, 2Tr24.pptx
Slides Lição 4, CPAD, Como se Conduzir na Caminhada, 2Tr24.pptxLuizHenriquedeAlmeid6
 
Família de palavras.ppt com exemplos e exercícios interativos.
Família de palavras.ppt com exemplos e exercícios interativos.Família de palavras.ppt com exemplos e exercícios interativos.
Família de palavras.ppt com exemplos e exercícios interativos.Susana Stoffel
 
HORA DO CONTO3_BECRE D. CARLOS I_2023_2024
HORA DO CONTO3_BECRE D. CARLOS I_2023_2024HORA DO CONTO3_BECRE D. CARLOS I_2023_2024
HORA DO CONTO3_BECRE D. CARLOS I_2023_2024Sandra Pratas
 
Slide de exemplo sobre o Sítio do Pica Pau Amarelo.pptx
Slide de exemplo sobre o Sítio do Pica Pau Amarelo.pptxSlide de exemplo sobre o Sítio do Pica Pau Amarelo.pptx
Slide de exemplo sobre o Sítio do Pica Pau Amarelo.pptxconcelhovdragons
 
UFCD_10392_Intervenção em populações de risco_índice .pdf
UFCD_10392_Intervenção em populações de risco_índice .pdfUFCD_10392_Intervenção em populações de risco_índice .pdf
UFCD_10392_Intervenção em populações de risco_índice .pdfManuais Formação
 
Apresentação | Eleições Europeias 2024-2029
Apresentação | Eleições Europeias 2024-2029Apresentação | Eleições Europeias 2024-2029
Apresentação | Eleições Europeias 2024-2029Centro Jacques Delors
 
Atividade com a letra da música Meu Abrigo
Atividade com a letra da música Meu AbrigoAtividade com a letra da música Meu Abrigo
Atividade com a letra da música Meu AbrigoMary Alvarenga
 
Cultura e Sociedade - Texto de Apoio.pdf
Cultura e Sociedade - Texto de Apoio.pdfCultura e Sociedade - Texto de Apoio.pdf
Cultura e Sociedade - Texto de Apoio.pdfaulasgege
 
Programa de Intervenção com Habilidades Motoras
Programa de Intervenção com Habilidades MotorasPrograma de Intervenção com Habilidades Motoras
Programa de Intervenção com Habilidades MotorasCassio Meira Jr.
 
geografia 7 ano - relevo, altitude, topos do mundo
geografia 7 ano - relevo, altitude, topos do mundogeografia 7 ano - relevo, altitude, topos do mundo
geografia 7 ano - relevo, altitude, topos do mundonialb
 
A Arte de Escrever Poemas - Dia das Mães
A Arte de Escrever Poemas - Dia das MãesA Arte de Escrever Poemas - Dia das Mães
A Arte de Escrever Poemas - Dia das MãesMary Alvarenga
 
FCEE - Diretrizes - Autismo.pdf para imprimir
FCEE - Diretrizes - Autismo.pdf para imprimirFCEE - Diretrizes - Autismo.pdf para imprimir
FCEE - Diretrizes - Autismo.pdf para imprimirIedaGoethe
 
Gerenciando a Aprendizagem Organizacional
Gerenciando a Aprendizagem OrganizacionalGerenciando a Aprendizagem Organizacional
Gerenciando a Aprendizagem OrganizacionalJacqueline Cerqueira
 
Prática de interpretação de imagens de satélite no QGIS
Prática de interpretação de imagens de satélite no QGISPrática de interpretação de imagens de satélite no QGIS
Prática de interpretação de imagens de satélite no QGISVitor Vieira Vasconcelos
 
trabalho wanda rocha ditadura
trabalho wanda rocha ditaduratrabalho wanda rocha ditadura
trabalho wanda rocha ditaduraAdryan Luiz
 
A experiência amorosa e a reflexão sobre o Amor.pptx
A experiência amorosa e a reflexão sobre o Amor.pptxA experiência amorosa e a reflexão sobre o Amor.pptx
A experiência amorosa e a reflexão sobre o Amor.pptxfabiolalopesmartins1
 
cartilha-pdi-plano-de-desenvolvimento-individual-do-estudante.pdf
cartilha-pdi-plano-de-desenvolvimento-individual-do-estudante.pdfcartilha-pdi-plano-de-desenvolvimento-individual-do-estudante.pdf
cartilha-pdi-plano-de-desenvolvimento-individual-do-estudante.pdfIedaGoethe
 

Último (20)

Apostila da CONQUISTA_ para o 6ANO_LP_UNI1.pptx
Apostila da CONQUISTA_ para o 6ANO_LP_UNI1.pptxApostila da CONQUISTA_ para o 6ANO_LP_UNI1.pptx
Apostila da CONQUISTA_ para o 6ANO_LP_UNI1.pptx
 
Slides Lição 4, CPAD, Como se Conduzir na Caminhada, 2Tr24.pptx
Slides Lição 4, CPAD, Como se Conduzir na Caminhada, 2Tr24.pptxSlides Lição 4, CPAD, Como se Conduzir na Caminhada, 2Tr24.pptx
Slides Lição 4, CPAD, Como se Conduzir na Caminhada, 2Tr24.pptx
 
Família de palavras.ppt com exemplos e exercícios interativos.
Família de palavras.ppt com exemplos e exercícios interativos.Família de palavras.ppt com exemplos e exercícios interativos.
Família de palavras.ppt com exemplos e exercícios interativos.
 
XI OLIMPÍADAS DA LÍNGUA PORTUGUESA -
XI OLIMPÍADAS DA LÍNGUA PORTUGUESA      -XI OLIMPÍADAS DA LÍNGUA PORTUGUESA      -
XI OLIMPÍADAS DA LÍNGUA PORTUGUESA -
 
HORA DO CONTO3_BECRE D. CARLOS I_2023_2024
HORA DO CONTO3_BECRE D. CARLOS I_2023_2024HORA DO CONTO3_BECRE D. CARLOS I_2023_2024
HORA DO CONTO3_BECRE D. CARLOS I_2023_2024
 
Slide de exemplo sobre o Sítio do Pica Pau Amarelo.pptx
Slide de exemplo sobre o Sítio do Pica Pau Amarelo.pptxSlide de exemplo sobre o Sítio do Pica Pau Amarelo.pptx
Slide de exemplo sobre o Sítio do Pica Pau Amarelo.pptx
 
Orientação Técnico-Pedagógica EMBcae Nº 001, de 16 de abril de 2024
Orientação Técnico-Pedagógica EMBcae Nº 001, de 16 de abril de 2024Orientação Técnico-Pedagógica EMBcae Nº 001, de 16 de abril de 2024
Orientação Técnico-Pedagógica EMBcae Nº 001, de 16 de abril de 2024
 
UFCD_10392_Intervenção em populações de risco_índice .pdf
UFCD_10392_Intervenção em populações de risco_índice .pdfUFCD_10392_Intervenção em populações de risco_índice .pdf
UFCD_10392_Intervenção em populações de risco_índice .pdf
 
Apresentação | Eleições Europeias 2024-2029
Apresentação | Eleições Europeias 2024-2029Apresentação | Eleições Europeias 2024-2029
Apresentação | Eleições Europeias 2024-2029
 
Atividade com a letra da música Meu Abrigo
Atividade com a letra da música Meu AbrigoAtividade com a letra da música Meu Abrigo
Atividade com a letra da música Meu Abrigo
 
Cultura e Sociedade - Texto de Apoio.pdf
Cultura e Sociedade - Texto de Apoio.pdfCultura e Sociedade - Texto de Apoio.pdf
Cultura e Sociedade - Texto de Apoio.pdf
 
Programa de Intervenção com Habilidades Motoras
Programa de Intervenção com Habilidades MotorasPrograma de Intervenção com Habilidades Motoras
Programa de Intervenção com Habilidades Motoras
 
geografia 7 ano - relevo, altitude, topos do mundo
geografia 7 ano - relevo, altitude, topos do mundogeografia 7 ano - relevo, altitude, topos do mundo
geografia 7 ano - relevo, altitude, topos do mundo
 
A Arte de Escrever Poemas - Dia das Mães
A Arte de Escrever Poemas - Dia das MãesA Arte de Escrever Poemas - Dia das Mães
A Arte de Escrever Poemas - Dia das Mães
 
FCEE - Diretrizes - Autismo.pdf para imprimir
FCEE - Diretrizes - Autismo.pdf para imprimirFCEE - Diretrizes - Autismo.pdf para imprimir
FCEE - Diretrizes - Autismo.pdf para imprimir
 
Gerenciando a Aprendizagem Organizacional
Gerenciando a Aprendizagem OrganizacionalGerenciando a Aprendizagem Organizacional
Gerenciando a Aprendizagem Organizacional
 
Prática de interpretação de imagens de satélite no QGIS
Prática de interpretação de imagens de satélite no QGISPrática de interpretação de imagens de satélite no QGIS
Prática de interpretação de imagens de satélite no QGIS
 
trabalho wanda rocha ditadura
trabalho wanda rocha ditaduratrabalho wanda rocha ditadura
trabalho wanda rocha ditadura
 
A experiência amorosa e a reflexão sobre o Amor.pptx
A experiência amorosa e a reflexão sobre o Amor.pptxA experiência amorosa e a reflexão sobre o Amor.pptx
A experiência amorosa e a reflexão sobre o Amor.pptx
 
cartilha-pdi-plano-de-desenvolvimento-individual-do-estudante.pdf
cartilha-pdi-plano-de-desenvolvimento-individual-do-estudante.pdfcartilha-pdi-plano-de-desenvolvimento-individual-do-estudante.pdf
cartilha-pdi-plano-de-desenvolvimento-individual-do-estudante.pdf
 

Capacidades gráficas da plataforma Java

  • 1. CENTRO FEDERAL DE EDUCAÇÃO TECNOLOGICA DO ESTADO DE ALAGOAS COORDENADORIA DE INFORMATICA LINGUAGEM DE PROGRAMAÇAO II PROFESSOR MARCILIO JUNIOR CAPACIDADES GRÁFICAS DA PLATAFORMA JAVA Giovanni de A. Calheiros João Paulo de Lima Braga Michel Alves dos Santos Maceió, 16 de Fevereiro de 2004
  • 2. CENTRO FEDERAL DE EDUCAÇÃO TECNOLOGICA DO ESTADO DE ALAGOAS COORDENADORIA DE INFORMATICA LINGUAGEM DE PROGRAMAÇAO II PROFESSOR MARCILIO JUNIOR CAPACIDADES GRÁFICAS DA PLATAFORMA JAVA Giovanni de A. Calheiros João Paulo de Lima Braga Michel Alves dos Santos Maceió, 16 de Fevereiro de 2004
  • 3. Introdução Esta apresentação visa mostrar o funcionamento das capacidades gráficas que a plataforma de programação JAVA oferece, detalhando sua implementação, comunicação com o sistema operacional, classes disponíveis e utilização das mesmas. Tanto AWT quanto Swing terão abordados: suas características principais, modo de desenho, abordagem de performance e portabilidade, além de suas diferenças. Será dado uma ênfase ao Swing, devido aos novos componentes oferecidos, que resolvem alguns problemas encontrados na utilização da AWT. Serão apresentados alguns exemplos de painéis, utilizando componentes do pacote Swing.
  • 4. AWT  Abstract Windowing Toolkit – Caixa de ferramentas para janelamento abstrato Primeiro sistema de janelamento introduzido na plataforma JAVA, tendo por base as diretrizes de cada sistema de janelamento (MOTIF – CDE, Windows GUI, MAC GUI,...). Considerado pesado por muitos programadores, e além disso não tão extensível pois a possibilidade de manufatura de componentes torna-se um trabalho árduo. Resolvia a maioria dos problemas de programação, com base na criatividade do programador, pois não dispunha de componentes hoje existentes em Swing. Seríamos eufêmicos ao dizer que AWT usa por base apenas as diretivas do sistema nativo, seu acoplamento é mais enraizado, pois o desenho e a execução GUI fica por conta da plataforma nativa, ou seja pela API do SO. Os componentes do pacote java.awt são diretamente relacionados com as capacidades gráficas da plataforma hospedeiro. O segredo é que o AWT executa apenas as funções comuns a todos os sistemas de janela. Dessa forma, um mesmo programa JAVA pode apresentar aparências diversas, quando executado em diferentes plataformas. O que causa uma sensível perda em performance e portabilidade. Para contornar a maioria dos problemas de janelamento uma classe de controle do ambiente foi introduzida, seu nome é GraphicsEnviroment (classe responsável por armazenar todo o contexto de ambiente da plataforma que hospeda a aplicação; exemplo: resolução presente, resolução máxima, profundidade de cores em bits, cartão gráfico, número de ambientes em que esta rodando – terminais). Mesmo assim os problemas de programação que necessitassem de um pouco mais desse sistema encontrariam barreiras que poderiam ser facilmente transpostas por meio de plataformas de programação RAD tais como: VB, Delphi, Clarion, TCL/TK, GTK, Glade, Lazarus, Visual C++, C Builder, claro que não alcançando a mesma portabilidade que a linguagem JAVA propunha. Além disso AWT conta apenas com um PLAF (Plataform Look-and-Feel) ou seja, uma única forma de apresentação da sua GUI variando de plataforma para plataforma. Java em AWT utiliza os chamados objetos equivalentes (bibliotecas .peer – bibliotecas que fazem referência a GUI do sistema operacional. Exemplo: peer do Windows, peer do MAC, peer MOTIF/CDE). Quase todos os componentes da AWT são sub classes da classe Component. Visão hierárquica da classe Component java.lang.Object | +-- java.awt.Component | +--java.awt.Container | +--java.awt.Window | | | +--java.awt.Dialog | | | | | +--java.awt.FileDialog | | | +--java.awt.Frame | +--java.awt.Panel | +--java.applet.Applet
  • 5. Código para uso de frames em AWT. /** *class : AWTFrame – Exemplo que ilustra o uso de frames no AWT. *@author : Turma de Java 2003.2 *data : 16/02/2004 **/ import java.awt.*; import java.awt.event.*; /**Classe que extende a classe Frame do sistema AWT*/ public class AWTFrame extends Frame { /**Metodo principal*/ public static void main (String args[]){ AWTFrame fu = new AWTFrame(); fu.addWindowListener( new WindowAdapter() { public void windowClosing(WindowEvent e) { System.exit(0); } }); /**Propriedades*/ fu.setTitle("AWTFrame"); fu.setLocation(200,200); fu.setSize(400,200); fu.setVisible(true); //O metodo show() está ultrapassado. } /**Metodo de renderização ou pintura de todos as classes *que derivam de component - ou melhor classes gráficas*/ public void paint(Graphics g){ g.setColor(Color.black); g.drawRect(100,70,90,55); g.fillRect(200,70,90,55); } }
  • 6. Visão dos Frames AWT Frame awt sem sobreposição do método paint(). Awt não define por padrão o evento de janela windowClosing, por isso esse deve ser implementado. Diferente do sistema Swing que tem seu método setDefaultCloseOperation disparado automaticamente nesse evento. Frame awt com sobreposição do método paint(). É definido dentro do método o desenho de dois retângulos, um não preenchido e o outro totalmente. Nota-se que os frames awt tem por padrão o preenchimento na cor branca.
  • 7. Hierarquia dos componentes da AWT, mostrando os que herdam e os que extendem.
  • 8. Diagrama ou hierarquia das classes java.awt.peer, que é a implementação nativa dos componentes GUI da plataforma hospedeira. Essas classes recebem as solicitações feitas pelos componentes da AWT, tal como execução de um método. Criação de um botão. Veja a comunicação que é feita com a biblioteca peer da plataforma hospedeira. Abaixo, a execução do método setLabel().
  • 9. SWING  seguindo a tendência de nomenclatura usando nome de ritmos musicais. Sistema de janelamento introduzido na plataforma JAVA para solucionar alguns problemas decorrentes do projeto da AWT. O pacote Swing é parte do Java Foundation Classes (JFC) da plataforma Java. O JFC engloba um grupo de características para ajudar pessoas a construir GUIs. Swing usa por base toda a implementação de diretrizes da AWT e da classe GraphicsEnviroment, mas um ponto essencial deve ser apresentado: o janelamento é feito pelo próprio SWING, ou seja, a própria JVM executa o desenho dos componentes; pode parecer um trabalho extensivo, mas essa execução poupa muito da implementação especifica, que seria ajustada para cada forma de janelamento, fazendo com que esse sistema torne-se ainda mais portável, contando dessa forma com uma grande gama de componentes que podem ser estendidos, adaptados, combinado e “remanufatrados”. Swing torna a plataforma JAVA uma “suíte de desenvolvimento” à altura de linguagens RAD (VB, Delphi, Clarion, Visual C++, Visual Cobol, etc), disponibilizando as mesmas facilidades de desenho de interfaces, um completo sistema de cores, painéis especializados e componentes com alta facilidade de integração, mas para que essas facilidade sejam usufruídas uma IDE deve ser utilizada, pois o pacote JSDK da SUN não acompanha uma ferramenta de desenho de interfaces. Exemplo: NetBeans, Visual Café, Eclipse, Forte, dentre outras. Arquitetura gráfica da plataforma hospedeira, demonstrando a extensão do sistema de janelamento Swing. No AWT não são encontrados painéis especializados como JdesktopPane ou JInternalFrame, o último muito utilizado na implementação de aplicações MDI(Multiple Data Interface), essa aplicação é essencialmente constituída de uma Janela mestre e as demais subordinadas a esta, daí a necessidade de janelas filho ou janelas internas. Antes (no AWT) os frames filhos eram apenas frames normais que tinham a opção Frame.CHILD setada. No decorrer do trabalho serão apresentados os componentes mais utilizados que constituem o pacote javax.swing: JFrame, JPanel, JInternalFrame, JLabel, JButton, JToggleButton, JCheckBox, JRadioButton, ButtonGroup, JList, JTextField, JTextArea, JTabbedPane, JScrollBar, JScrollPane, JPopupMenu, JComboBox, JMenu, JMenuBar, JMenuItem, JCheckBoxMenuItem, JRadioButtonMenuItem, JOptionPane, JTable, JToolBar, dentre vários outros.
  • 10. Look-and-Feel das janelas do pacote javax.swing. Este PLAF, é chamado de cross-plataform ou metal. Hierarquia da classe JFrame, mostrando sua derivação da classe Frame do pacote AWT. Diferentemente de Frame os objetos da classe Jframe tem alguma noção de como responder a ação de fechar janela imposta pelo usuário. Por padrão a janela é escondida quando o usuário executa ação. O método que é executado decorrente a ação pode ter seu valor mudado pelo método setDefaultCloseOperation() que recebe um inteiro para indicar a ação padrão de fechamento da janela (DO_NOTHING_ON_CLOSE, HIDE_ON_CLOSE, DISPOSE_ON_CLOSE, EXIT_ON_CLOSE – em exit_on_close o método exit da classe system é chamado, enquanto que em dispose apenas a janela é fechada liberando os recursos que ela alocou). Especificação das novas classes implementadas em Java, incorporadas à nova especificação do JSDK, está visível na figura que o pacote swing herda do pacote awt, dispensando seus problemas e utilizando suas qualidades. Uma verdadeira filtragem em suas propriedades (widgets). A especificação JFC tende a separar os pacotes java2D e java3D e os mecanismos de drag-and-drop. Mas todos eles estão dentro da mesma especificação. A Relação entre os pacotes AWT e Swing das versões 1.1 e 1.2, quando deixou de ser uma biblioteca (.jar) para integrar o pacote. java.lang.Object | +--java.awt.Component | +--java.awt.Container | +--java.awt.Window | +--java.awt.Frame | +--javax.swing.JFrame
  • 11. Hierarquia das classes do pacote javax.swing, observando os componentes top-levels. Esses componentes derivam da classe JPanel: JApplet, JDialog, JFrame, JWindow. As classes representadas por um paralelogramo são classes abstratas, que só podem ser herdadas.
  • 12. Diagrama de classe de uma JButton ALGUNS COMPONENTES SWING. Aqui estão algumas dos componentes comumente utilizados: JButtons JComboBox JList JDialog JMenu
  • 13. LOOK-AND-FEEL. O pacote javax.swing possui 4 formas de visualização de sua GUI usado em suas componentes, são elas : Java Look and Feel ( Metal/CrossPlataform ), CDE/Motif Look and Feel, MAC Look and Feel e Windows Look and Feel. Tendo presente a forma MAC Look and Feel apenas nas plataformas Macintosh. Veja o exemplo abaixo: Java look and feel CDE/Motif look and feel Windows look and feel JScrollPane JFrame JTable (conhecido como grid em outras plataformas)
  • 14. O exemplo acima pode ser adquirido no site da sun na seguinte url : http://java.sun.com/docs/books/tutorial/uiswing/mini/secondexample.html , lá o leitor encontrará a classe SimpleExample.java, que mostra de forma básica de como mudar a visualização para a GUI de sua escolha. Logo abaixo temos a visualização de alguns componentes e seus respectivos look and feels: Metal, MAC, Motif. Formas de apresentação da GUI em java. Exemplo de caixas de alerta em Windows, CDE e plataforma Macintosh
  • 15. Tabela com nomes de componentes da JFC. Logo abaixo temos uma lista de componentes da JFC (especificação java para novas classes). É notória a superioridade em número de componentes Swing em relação a lista de componentes AWT apresentada na página número 7 deste trabalho. Essa lista foi tirada da seguinte página da sun :http://java.sun.com/products/jlf/ed2/book/HIG.Classes2.html#39575, essa página faz parte da seção sobre o livro “Java Look and Feel Design Guidelines, second edition.” Componente Nome Nome Comum JApplet Applet JButton Command button e toolbar button JCheckBox Checkbox JCheckBoxMenuItem Checkbox menu item JColorChooser Color chooser JComboBox Noneditable e editable combo boxes JDesktopPane Backing window JDialog Dialog box, secondary window, e utility window JEditorPane Editor pane JFrame Primary window JInternalFrame Internal window, minimized internal window, e internal utility window JLabel Label JList List components (list boxes e e listas selecionáveis) JMenu Drop-down menu e submenu JMenuBar Menu bar JMenuItem Menu item
  • 16. JOptionPane Alert box/Caixa de alerta JPanel Panel JPasswordField Password field/Campo de senha JPopupMenu Contextual menu JProgressBar Progress bar/Barra de progresso JRadioButton Radio button JRadioButtonMenuIte m Radio button menu item JScrollBar Scrollbar JScrollPane Scroll pane JSeparator Separator JSlider Slider JSplitPane Split pane JTabbedPane Tabbed pane JTable Table JTextArea Plain text area JTextField Noneditable e editable text fields (single line) JTextPane Editor pane com editor kit plug-in estilizado. JToggleButton Toggle button e toolbar toggle button JToolBar Toolbar
  • 17. JToolTip Tool tip/rótulo de dicas JTree Tree component/Árvore JWindow Janela Plana, sem barra de título. GERENCIADORES DE EVENTOS. No exata momento em que optamos por trabalhar com interfaces gráficas, temos que aprender a lidar com os eventos. As interfaces gráficas são elementos baseados em eventos. De uma maneira geral eventos são interações disparadas por usuários ou pelo próprio sistema. Mover o mouse é um evento, fechar uma janela é um outro evento. Eventos ocorrem a todo instante nos aplicativo modernos e, portanto devemos compreender como tratá-los. Quando um usúario interage com um objeto da interface gráfica, um evento é enviado automaticamente para o programa, na expectativa de que ele seja identificado e convenientemente tratado para produzir algum tipo de resposta à ação realizada sobre o objeto. O processamento de um evento exige duas providências : 1 – Registrar um ouvinte de eventos (listener); 2 – Implementar um manipulador de eventos (handler). O registro de eventos se processa através de interfaces disponibilizadas por pacotes do Java, como java.awt.event e javax.swing.event. Há, em Java, diversos tipos de ouvintes de eventos. A interface EventListener, disponibilizada pelo pacote java.util, deriva diversas sub-interfaces que se preocupam em ouvir eventos específicos. Listamos abaixo, as que julgamos mais utilizadas : ActionListener – eventos de ação: clicar num botão. ComponentListener – eventos de componentes: redimensionar uma janela. ContainerLIstener - eventos de contêineres : adicionar ou remover um objeto de um contêiner. FocusListener – eventos relacionados ao foco dos objetos : quando um objeto recebe ou perde o foco. KeyListener – recebe eventos relacionados ao teclado. MouseListener – eventos relacionados ao mouse. WindowListener – eventos relacionados as janelas : redimensionar, minimizar, fechar, etc. Exemplo : Trecho de código referente ao registro de um ouvinte e implementação de um handler para um evento de janela. frameExemplo.addWindowListener( new WindowAdapter() { public void windowClosing(WindowEvent e) { System.exit(0); } });
  • 18. Logo abaixo a lista com a hierarquia de interfaces do pacote java.awt.event: Hierarquia de Interfaces interface java.util.EventListener interface java.awt.event.ActionListener interface java.awt.event.AdjustmentListener interface java.awt.event.AWTEventListener interface java.awt.event.ComponentListener interface java.awt.event.ContainerListener interface java.awt.event.FocusListener interface java.awt.event.HierarchyBoundsListener interface java.awt.event.HierarchyListener interface java.awt.event.InputMethodListener interface java.awt.event.ItemListener interface java.awt.event.KeyListener interface java.awt.event.MouseListener interface java.awt.event.MouseMotionListener interface java.awt.event.MouseWheelListener interface java.awt.event.TextListener interface java.awt.event.WindowFocusListener interface java.awt.event.WindowListener interface java.awt.event.WindowStateListener ActionListener : Uma pequena ilustração sobre o evento action listener. ActionListener é uma interface Java implementada por muitos componentes da GUI, tais como botões. Tem somente um método – actionPerformed. Aqui esta sua definição: public Interface ActionListener { public void actionPerformed(ActionEvent e) } GERENCIADORES DE LAYOUT. Na tentativa de facilitar as coisas para os programadores, Java oferece classes que especificam como os componentes devem ser posicionados em um contêiner. Essas classes são conhecidas como gerenciadores de layout. Os tipos propostos pela linguagem são : Border Layout , Flow Layout, Grid Layout, Box, Card, GridBag e Null Layout (que na verdade não é um gerenciador mas sim a falta de um). Vamos falar sobre alguns deles.
  • 19. Border Layout. Gerenciador padrão dos objetos JFrame, de acordo com esse gerenciador o conteiner pode ser visto como uma área dividida em cinco regiões : Norte, Sul, Leste , Oeste e Centro. Em cada uma dessas áreas um novo objeto pode ser inserido , podendo esse novo objeto um conteiner com o seu próprio gerenciador de layout. Border Layout Flow Layout. Gerenciador de layout baseado em fluxo, sendo a disposição dos objetos adicionados da esquerda para a direita e , em seguida, centralizados na ordem que são adicionados ao conteiner. Flow Layout
  • 20. Card Layout. Permite empilhar objetos como se fossem cartas de um baralho. Podemos colocar painéis uns em cima dos outros ... ... e podemos visualizá-los no momento em que quisermos.
  • 21. Grid Layout. Define um layout em forma de grade, com o número de linhas necessárias para conter os objetos. O detalhe é que os objetos serão sempre do mesmo tamanho e se ajustarão automaticamente a qualquer variação no tamanho da janela. Grid Layout. Grid Layout. A exemplo do gerenciador GridLayout, também organiza objetos em uma grade. Entretanto trata-se de um gerenciador muito mais flexível, poderoso e complexo, permitindo alinhar objetos vertical e horizontalmente, sem impor que todos os objetos tenham o mesmo tamanho. GridBag Layout
  • 22. REFERÊNCIAS BIBLIOGRÁFICAS JAVA 2, Fundamentos, Swing e JDBC. Ivan Mecenas. Java NutShell, Editora O´reilly. Java como programar , Deitel. REFERÊNCIAS ELETRÔNICAS http://java.sun.com http://java.sun.com/products/jfc/tsc/articles/jlf-design/ http://java.sun.com/developer/techDocs/hi/repository/index.html http://java.sun.com/products/jlf/at/book/ http://java.sun.com/developer/techDocs/hi/repository/ http://java.sun.com/products/jlf/ed2/guidelines.html http://java.sun.com/developer/techDocs/hi/repository/TBG_Text.html http://java.sun.com/products/jfc/tsc/articles/jlf-metal-report/ http://java.sun.com/developer/techDocs/hi/repository/TBG_Table.html http://java.sun.com/developer/techDocs/hi/repository/TBG_Navigation.html http://java.sun.com/developer/techDocs/hi/repository/TBG_Media.html http://java.sun.com/developer/techDocs/hi/repository/TBG_Development.html http://java.sun.com/products/jlf/ed2/book/HIG.Visual.html http://java.sun.com/products/jlf/ed2/book/HIG.Visual2.html