Você está na página 1de 20

Java AWT & Swing

Bruno Silva FAREC

AWT
AWT ou Abstract Window Toolkit o antigo conjunto de ferramentas para interfaces grficas do Java Serve para oferecer infraestrutura mnima de interface grfica (nivela por baixo) Componentes tm aparncia dependente de plataforma imitado em recursos devido a depender de L suporte de cada plataforma para os componentes oferecidos Bugs e incompatibilidades entre plataforma

Histria AWT
Interface grfica: componentes, layout, eventos Java 1.0
Interface que roda de forma medocre em todas as plataformas (Abominable Window Toolkit) Modelo de eventos arcaico

Java 1.1
Melhora do modelo de eventos: por delegao usando design pattern Observer

Java 1.2
JFC/Swing substitui totalmente componentes AWT Mantm e estende a interface de eventos e layou

Swing
Swing: componentes leves, que no dependem de implementao nativa
Uma das mais completas bibliotecas grficas j criadas Baseada em JavaBeans: ferramentas GUI conseguem gerar cdigo legvel e reutilizvel

Swing
"Look & Feel": Drag & drop, cut & paste, undo/redo, texto estilizado. Exemplo. Veja demo em $JAVA_HOME/demo/jfc/SwingSet2/ No meu caso c:\Program Files\Java\jdk1.6.0_06\demo\jfc\SwingSet2\Swin gSet2.jar

Como implementar aplicaes com Swing?


Tutorial Java
http://www.oracle.com/technetwork/java/index.h tml

Aplicaes Java
Dois tipos de Gui
Applet Standard

Applets
Aplicaes que rodam em navegador de internet Geralmente controladas pelo browser Restries de Segurana

Aplicaes Grficas Java (Component AWT)


Sempre existe um Objeto component por trs de todo objeto que pintado na Tela.
void paint (java.awt.Graphics g) void repaint() void update(java.awt.Graphics g)

O objeto passado como argumento durante a execuo (contexto grfico) , na verdade, um java.awt.Graphics2D (subclasse de Graphics)

Componentes AWT
H dois tipos importantes de componentes:
2) descendentes de java.awt.Container
Applet, Frame, Dialog.

1) descendentes diretos de java.awt.Component


Todos o resto.

Principais Containers
Frame (AWT) e JFrame (Swing) Panel e Jpane Applet e JApple

Graphics
Representa o contexto grfico Programador pode desenhar no componente usando referncia recebida via paint() ao sobrepor o mtodo:
public void paint(Graphics g) { Graphics2D g2 = (Graphics2D) g; Shape s = new Ellipse2D.Double(); g2.setColor(Color.red); g2.draw(s); }

Compentes Grficos Java

Referencias
http://www.metropoledigital.ufrn.br/aulas_av ancado/web/disciplinas/desktop/aula_04.htm l
http://www.oracle.com/technetwork/java/index.htm l

Recursos Bsicos
Qualquer componente pode mudar a sua fonte e cor.
Cores instncia da classe java.awt.Color componente.setBackground(new Color(255,0,0)); componente.setForeGround(Color.yellow);

Recursos Bsicos
Qualquer componente pode mudar a sua fonte e cor.
Fonte instncia da classe java.awt.Font Font f = new Font("SansSerif", Font.BOLD, 24); componente.setFont(f)

Layouts
Pode-se utilizar um layout manager Layout padro
Frame e JFrame: BorderLayout (layout "geogrfico") Outros Containers: FlowLayout (layout seqencial)

JFrame
Para acrescentar objetos em um JFrame ou JApplet, preciso obter o content pane.
Container pane = frame.getContentPane(); Pane.addComponent(buttonA); pane.setLayout(referncia_para_layout);

JButton
Boto Simples
JButton b1 = new Button("text"); JButton b2 = new Button("text", icon);

Icones
Icon icon = new ImageIcon("caminho");

Principais Componentes
JTextField campo de entrada de dados simples JPasswordField campo para entrada de dados ocultos JTextArea campo de entrada de texto multilinha JEditorPane editor que entende HTML e RTF JTextPane editor sofisticado com vrios recurso

Exemplo JFrame
import java.awt.*; import javax.swing.*; public class Swinggy extends JFrame { public Swinggy(String nome) { super(nome); this.setSize(400,350); this.setVisible(true); } public static void main(String[] args) { new Swinggy("Swinggy 1.0"); } }