Universidade Federal do Amazonas Departamento de Ciência da Computação IEC481 – 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 AWT – Abstract Windows Toolkit import java.awt.*; 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 Toolkit import 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 Toolkit import 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 textentry. 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 – Componentes da Interface Principais componentes da Interface: BUTTON; CANVAS; CHECKBOX; LABEL; LIST; CHOICE; SCROLLBAR; TEXTFIELD; TEXTAREA AWT – Exemplo AWT – Containers 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 - Exemplo AWT – Layout 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 - Exemplo O que é SWING import javax.swing.*; 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 é SWING – Componentes Básicos 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 – Exemplo 1 2 3 4 import java.awt.*; import java.awt.event.*; import javax.swing.*; 5 6 7 8 9 10 public class LabelTest extends JFrame{ private JLabel L1,L2,L3; 11 public LabelTest(){ super("Testando a classe JLabel"); Container container = getContentPane(); 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 } } 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 – Um novo arquivo para o Projeto Eclipse – Um novo 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?