Java 17
September 29, 2022 | Author: Anonymous | Category: N/A
Short Description
Download Java 17...
Description
Java 2 Standard Edition
Como construir aplicações gr á ficas e applets Held He lder er da Ro Roch chaa www.argonavis.com.br
AWT e Swing
AWT ou A AWT ou Abstract bstract W indow indow T oolki oolkitt é o an antitigo go cconj onjun unto to de ferram ferramentas entas para interfaces interfaces gráfi gráficas cas do Ja Java va
Serve para oferecer infraestrutura mínima de interface gráfica (nivela por baixo) Componentes têm aparência dependente de plataforma Limitado em recursos devido a depender de suporte de cada plataforma para os componentes oferecidos Bugs e incompatibilidades entre plataformas
JFC ( Java JFC ( Java F oundation oundation C lasses) lasses) oferece uma interface muito mais rica
Swing éisooo impo nome nom ertar dar java.awt dado ado à co cole leçã ção o de de com compo pone nent ntes esusar JFC É pr prec ecis im port java.awt e javax.swing javax.swing para para
História do AW AWT
Interf Inte rfac acee gr gráf áfic ica: a: comp compon onen ente tes, s, lay layou out, t, even evento toss Java 1.0
Java 1.1
Interrfa Inte face ce que ro roda da de fo form rmaa me medí díoocr cree em tod odas as as plataformas (“Abominable” Window Toolkit) Modelo de eventos arcaico Melhora do modelo de eventos: por delegação usando
Javadesign 1.2 pattern Observer
JFC/Swing substitui totalmente totalmente componentes componentes AWT Mantém e estende a interface de eventos e layout
Java Foundation Classes
Parte do J2S Parte J2SEE desde desde Jav Javaa SDK 1.2. 1.2. Con Consis siste te de: de: 1. Swing: Swing: com compon oneentes lleeves, que nã não ddeependem de impl im plem ement entaç ação ão na natitiva va (veja (veja Java Java Tu Tuto toria rial)l)
Umaa das ma Um mais is co comp mple leta tass bi bibl blio iote teca cass gr gráfi áfica cass já cr cria iadas das
Baseada Bas eada em JavaBean Beans: s:ável fel ferr errame amenta ntass GUI con conseg seguem uem ger gerar ar có códi digo go le legí gíve vellJava e re reut utililiz izáv
2. "Look & Feel": Feel": Drag Drag & drop drop,, cu cutt & ppas aste te,, und undo/r i18n, texto Biblo/redo ioteedo, ca ,di1 e 8n, comtex pontoeneesti tstiliza eslizado (apdo enas o SSw wing) é compa com patítíve vell ccom om JDK 1. 1.1. 1.44
Pode ser baixada separadamente e usada com versões limitadas do Java como J# como J# da Microsoft e MacOS 9
JFC/Swing
Veja demo em $JAVA_HOME/demo/jfc/SwingSet2/ java -j > java -jar ar Swi Swing ngSe Set2 t2.j .jar ar Swi Swing ngSe Set2 t2
Como implementar aplicações com Swing?
Java Tutorial Tutorial:: Swing "trai "trail"l" possui guias guias passo-apasso-a-passo passo para para uso de cada componente e recurso do JFC e Swing (www.java.sun. (www.java.sun.com/tutorial) com/tutorial)
Tipos de aplicações
Há dois tipos tipos ddee apl aplica icações ções ggráf ráfica icass em Ja Java va
Componentes iniciados via browser ( applets applets ) ) Aplicações standalone iniciadas via sistema operacional
Ambas capturam eventos do sistema e desenham-se gráfico fornecido fornecido sistema sobre umsão contexto gráfico Applets aplicações especiais quepelo rodam a partir de um browser
São componentes que executam container (ambiente operacional) fornecidoem peloumbrowser Browser Brow ser é quem contr controla ola seu ciclo ciclo de vida vida (início, (início, fim, etc.) etc.) Geralmente ocupam parte da janela do browser mas podem abrir janelas extras Possuem restrições de segurança
java.awt.Component
Raiz da hierarquia de componentes gráficos
Há um Co Compo mponen nentt por ttrás rás de de tud tudoo que ppode ode sser er pintado tela (chamados pelo sistema): Principaisnamétodos
Componentes Swing herdam de javax.swing.JCom de javax.swing.JComponent ponent,, quee é "n qu "net eto" o" de Component
void paint void paint (ja (java. va.awt awt.Gr .Graph aphics ics g) void repaint() () va.awt void repaint update(ja update (java. awt.Gr .Graph aphics ics g)
O objeto passado como argumento durante a execução (contexto gráfico) é, na verdade, um java.awt.Graphics2D (subclasse de Graphics)
Componentes AWT
Há dois tipos tipos iimpo mporta rtante ntess de componen componentes tes:: 1) descendentes diretos de java.awt.Component de java.awt.Component
"Apenas" componentes componentes:: descendentes da classe Component que não são descendentes de Container (todos os componentes da AWT)
2) descendentes de java.awt.Container de java.awt.Container
Subclasse de java.awt.Compon java.awt.Component ent
São descendentes "recipientes."." Podem "recipientes conter outros Frame, componentes. da classe Container: Panel, Applet e JComponent JComponent (raiz da hierarquia dos componentes Swing)
Containers essenciais
Frame (AWT) e JFrame e JFrame (Swing)
Panel e JPanel e JPanel
Servem de base para qualquer aplicação gráfica Container de propósito geral Serve para agrupar outros componentes e permitir layout em camadas
Applet e JApplet e JApplet
Tipo de Panel (JPanel) que serve de base para aplicações que rodam dentro de browsers Pode ser inserido dentro de uma página HTML e ocupar o contexto gráfico do browser
Exemplo de JFrame import java.awt.*; import javax.swing.*; public class Swinggy extends JFrame { Swinggy(String (String nome) { public Swinggy super(nome); this.setSize(400,350); this.setSize(400,350); this.setVisible( true); ); this.setVisible(true } public static void main(String[] args) { main(String[] Swinggy("Swinggy "Swinggy 1.0"); 1.0"); new Swinggy( } }
AWT thread
Threaad qu Thre quee é re resp spon onsá sáve vell ppel elaa atualização do contexto gráfico
Chama update() (método de Component) e passa referência para o contexto gráfico como argumento sempre que for necessário redesenhá-lo.
Método update(Graphics g)
1. Limpa a área a ser redesenhada (contexto gráfico)
2. Chama paint(g) Chama paint(g) Métodos update() e paint() nunca devem ser chamados diretamente a partir do thread principal
Use repaint(), repaint() , que faz o agendamento de uma chamada a update() através do AWT thread Sobreponha update() se desejar
java.awt.Graphics
Representa o contexto gráfico de cada componente Passado pelo sistema quando chama update() Programador pode desenhar no componente usando referência recebida via paint() ao sobrepor o método: g) { public void paint(Graphics paint(Graphics g) Graphics2D g2 = (Graphics2D) g; Shap Sh ape e s = new new Ell Ellip ipse se2D 2D.D .Dou oubl ble( e(); ); g2.setColor(Color.red); g2 .setColor(Color.red); g2.draw(s); g2 .draw(s); }
Para defini definirr o que sserá erá desenhado desenhado em de determ terminado inado componente, sobreponha seu método paint() método paint()
Use Graphics2D! Mais recursos!
Applets
Aplicação gráfica que roda em browser
Toda a infra infraestru estrutura tura herda herdada da da class classee javax.swing.JApplet (ou java.applet.Applet) É um compon componente ente de um um framewor frameworkk que execut executaa em ambiente de execução (container) no browser
Métodos de JApplet, chamados automaticamente, devem dev em ser ssobr obrepo eposto stos. s. Ci Ciclo clo de de vid vida: a:
init() applet start()- -inoicqiauleizafaçzãeor dqousacnodm o paopnpelentteinsicdioarapp stop() - o que fa fazer antes de de ap applet parar
destroy()- o- qouqeude paint() deefsaeznehraqrunaondconatpepxtleotgtreárfm icionar
Ciclo de vida start
applet é carregada
descartando visitando uma página
saindo ou descarregando uma página
init
uma página
destroy
stop
paint() é outro outro método método que é chamad chamadoo auto automat matica icamen mente, te, mas não faz parte do ciclo de vida do Applet, especificamente
Faz parte do ciclo de vida de qualquer aplicação gráfica No Applet, Applet, é cham chamado ado depois depois do start() start() e sempre sempre que o contexto contexto gráfico do applet applet for precisar precisar ser atualizado (redimensionamento (redimensionamento da janela do browser, ocultação do applet por outra janela, etc.) etc.)
Como construir applets
Applet mínimo
import javax.swing.*; import java.awt.*;
Comentário pelo appletviewerusado para exibir Applet: > appletviewer HelloApplet.java
/* * */ public class HelloApplet HelloApplet extends JApplet { public void init() init() { Container pane = this.getContentPane(); Web"); ); JLabel msg = new JLabel("Hello JLabel("Hello Web" pane.add(msg); }
}
Como usar applets
Até Java 1.1: para incluir um applet na página Web usava-se code=”pacote.Classe ”pacote.Classe” ” ”> ”> ”>
Java 2 (J2SDK 1.2 em diante ) usa HTML 4.0 (que tornou o tag obsoleto) classid=”XXX-XXX” XX” ...> ...
View more...
Comments