Universidade Federal do AmazonasDepartamento de Ciência da ComputaçãoIEC481 – Projeto de Programas
Programação Orientada a Objetos em Java
GUI – Graphical User Interface
Professor: César Melo
Slides baseados em materiais preparados pelo prof. Horácio Fernandes
As ferramentas de controle de janelas do java também conhecidas por AWT (Abstract Window Toolkit) são uns dos pontos fortes do java.
Estas ferramentas fornecem toda a funcionalidade que se podia esperar de um sistema moderno de janelas.
O AWT contém os mais usados componentes das interfaces gráficas atuais portanto habilita a aplicação a ser executada em sistemas gráficos completamente diferentes.
AWT – Abstract Windows Toolkitimport java.awt.*;
Todos os componentes tem: Uma posição e tamanho; Uma cor e uma cor de fundo.
Componentes podem ser habilitados e desabilitados; Existe uma interface padrão para os componentes
tratarem eventos
AWT – Abstract Windows Toolkitimport java.awt.*;
Componentes AWT podem ser divididos em três partes:
Componentes da Interface: Componentes da Interface abrangem todos os widgets e controles associados a uma interface gráfica. Exemplos destes componentes são: buttons, text labels, scrollbars, pick list e campos text-entry.
Containers: abrangem áreas nas quais os componentes da interface podem ser postos. Isto habilita os componentes a serem agrupados e a formarem um objeto mais coeso e fácil de ser manipulado. Um Panel é um exemplo deste tipo de componente.
Windows: são um tipo muito especial da classe Component. Todos os outros componentes são adicionados dentro de uma window. Normalmente quando se programa applets, windows não são usadas.
AWT – Abstract Windows Toolkitimport java.awt.*;
Principais componentes da Interface: BUTTON;
CANVAS;
CHECKBOX;
LABEL;
LIST;
CHOICE;
SCROLLBAR;
TEXTFIELD;
TEXTAREA
AWT – Componentes da Interface
AWT – Exemplo
Containers são simplesmente componentes que podem conter outros componentes.
Pense como uma maneira de subdividir uma área para construir a interface com o usuário, aonde os componentes podem ser colocados.
Existem dois tipos de containers: Panels e Windows. A maior diferença entre eles é que um Panel é definido
como uma área em uma janela já existente e Window é uma janela completamente nova. Quando a aplicação é uma Applet o único container que pode ser aplicado é o Panel.
AWT – Containers
AWT – Containers - Exemplo
Layout pode ser interpretado como uma máscara que é colocada sobre um container para definir como os seus componentes serão adicionados.
Normalmente é usado o layout BorderLayout(), baseado nos pontos cardeais.
AWT – Layout
AWT – Layout - Exemplo
Swing é um toolkit que inclui um extenso conjunto de componentes para construir GUIs e adicionar mais interatividade em aplicações Java.
Para criar um programa em Java com GUI, você terá que aprender sobre Swing.
O swing é uma extensão das classes AWT Inclui componentes como: tabelas e seus controles, listas e
seus controles, estruturas de árvores e seus controles, botões e etc.
Até mesmo o suporte a internacionalização e à acessibilidade é possível.
Suporta variados look and feels e a capacidade de que o desenvolvedor crie o seu próprio look and feel.
Swing é parte do Java Foundation Classes (JFC).
O que é SWINGimport javax.swing.*;
JButton (public javax.swing.JButton btnMiddleButton; )
JCheckBox (public javax.swing.JCheckBox chkOption; )
O que é SWING – Componentes Básicos
JComboBox (public javax.swing.JComboBox comboAnimal; )
JRadioButton(public javax.swing.JRadioButton rdBtnAnimal; )
O que é SWING – Componentes Básicos
JList (public javax.swing.JList listOptions; ) JMenu (public javax.swing.JButton btnMiddleButton; ) JTextField(public javax.swing.JTextField txtFieldName; ) JSlider (public javax.swing.JSlider sldMaximize; ) JSpinner (public javax.swing.JSpinner Date; ) ...
O que é SWING – Componentes Básicos
1 import java.awt.*;2 import java.awt.event.*;3 import javax.swing.*;4
5 public class LabelTest extends JFrame{6 private JLabel L1,L2,L3;78 public LabelTest(){9 super("Testando a classe JLabel");10 Container container = getContentPane();
11 container.setLayout(new FlowLayout());
12
13 L1 = new JLabel("Label com texto");
14 L1.setToolTipText("Este e o label 1");
15 container.add(L1);
16
17 Icon martelo = new ImageIcon("c:/emmsr2005/java/tribunal_etica.gif");
18 L2 = new JLabel("Label com texto e icone",martelo,SwingConstants.LEFT);
19 L2.setToolTipText("Este e o Label 2");
20 container.add(L2);
21
22 L3 = new JLabel();
23 L3.setText("Label com texto, icone como botao");
24 L3.setIcon(martelo);
25 L3.setHorizontalTextPosition(SwingConstants.CENTER);
26 L3.setVerticalTextPosition(SwingConstants.BOTTOM);
27 L3.setToolTipText("Este e o label 3");
28 container.add(L3);
29
O que é SWING – Exemplo
30 setSize(275,170);
31 setVisible(true);
32 }
33 public static void main(String args[]){
34 LabelTest aplicacao = new LabelTest();
35 aplicacao.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
36 }
37 }
O que é SWING – Exemplo
Forma mais fácil: Eclipse
Eclipse – Um novo Projeto
Eclipse – Um novo Projeto
Eclipse – Um novo Projeto
Eclipse – Um novo arquivo para o Projeto
Eclipse – Umnovo arquivo para o Projeto
Eclipse – Umnovo arquivo para o Projeto
Eclipse – Um novo arquivo para o Projeto
Eclipse – Hello World
Eclipse – Run As -> Java Application
Eclipse – Hello World
GUI em Java
Dúvidas?