Buscar

Aula 1 - POO

Esta é uma pré-visualização de arquivo. Entre para ver o arquivo original

Programação Orientada a Objetos
Professora : Jane
*
Interface Gráfica com Swing
Aula 1
Professora: Jane
Mestre em Engenharia de Sistemas e Computação
COPPE/UFRJ
Programação Orientada a Objetos
Professora : Jane
*
Introdução
Revisão
Uma interface gráfica com o usuário ou GUI (lê-se : “gui”) fornece um mecanismo amigável ao usuário para interagir com o aplicativo.
 Exemplo de GUI : janela do Internet Explorer
As GUIs são construídas a partir de componentes GUI. Tais componentes são chamados às vezes de controles ou widgets (abrevia-se : window gadgets).
Um componente GUI é um objeto com que o usuário interage via mouse, teclado ou outro formulário de entrada, como reconhecimento de voz.
JFC (Java Foundation Classes) são um conjunto de componentes e serviços GUI que simplificam o desenvolvimento de aplicações para desktop e para internet/intranet.
Programação Orientada a Objetos
Professora : Jane
*
JFC contém 
AWT (Abstract Window Toolkit)
Swing 
Programação Orientada a Objetos
Professora : Jane
*
Entrada/Saída - GUI simples com a classe JOptionPane do pacote javax.swing
A classe JOptionPane está no pacote javax.swing que deve ser importado.
É possível também usar o seguinte (selecionar todo o pacote e deixar o trabalho de carregar a classe, feito pelo compilador): import javax.swing.*;
Exemplo:  
import javax.swing.JOptionPane; 
 public class Mensagem {	
 public static void main (String[] args)
	{
		//comando para a caixa de diálogo
		JOptionPane.showMessageDialog(null, “Esta é uma mensagem !”);
 
		//saída obrigatória do sistema
		System.exit(0);
	}
}
Programação Orientada a Objetos
Professora : Jane
*
Visão geral de componentes Swing
É preciso criar interfaces mais elaboradas e mais específicas em relação à aplicação. Será que a classe JOptionPane resolve ? 
A maioria dos componentes swing são componentes Java puros, ou seja, são escritos, manipulados e exibidos em Java. Eles fazem parte do JFC (Java Foundation Classes), que representa bibliotecas do Java para desenvolvimento GUI para várias plataformas.
 Exemplos de componentes : botão, campo de texto ...
Antes do swing ter sido introduzido na versão 1.2, os GUIs do Java eram construídas com componentes do Abstract Window Toolkit (AWT) do pacote java.awt.
Quando um aplicativo Java com awt é executado em diferentes plataformas, os componentes são exibidos diferentemente em cada plataforma. Às vezes, a maneira como o usuário pode interagir com o componente awt particular difere entre as plataformas.
Programação Orientada a Objetos
Professora : Jane
*
Os componentes swing (botões, caixas de texto, etc...) permitem especificar uniformemente a aparência e o comportamento para o aplicativo em todas as plataformas ou utilizar a aparência e o comportamento personalizados de cada plataforma.
Como os componentes swing são implementados em Java, são mais portáveis e flexíveis do que os componenentes Java GUI originais do pacotes java.awt.
Os componentes Swing são conhecidos como componentes leves e os componentes AWT são conhecidos como componentes de peso, porque contam com o sistema de janela da plataforma local para determinar a funcionalidade, a aparência e o comportamento do aplicativo.
Programação Orientada a Objetos
Professora : Jane
*
Hierarquia de classes
Object
 Component (pacote java.awt)
 Container (pacote java.awt)
 JComponent (pacote javax.swing)
Classe Component : declara muitos dos atributos e comportamentos comuns aos 
 componentes GUI em pacotes java.awt e javax.swing.
Classe JComponent : é superclasse de todos os componentes leve Swing e declara 
 seus atributos e comportamentos comuns.
Programação Orientada a Objetos
Professora : Jane
*
Um pouco mais de JOptionPane
(subclasse de JComponent)
Uma versão mais completa do comando de caixa de diálogo contém quatro argumentos, como segue:
 JOptionPane.showMessageDialog(null, “Texto da Mensagem”,
 “Titulo da janela”, TIPOICONE);
Programação Orientada a Objetos
Professora : Jane
*
Programação Orientada a Objetos
Professora : Jane
*
Para entrada de dados utilizamos o método showInputDialog, com uma variável do tipo String aguardando o retorno.
 
 	String numLido = JOptionPane.showInputDialog( "Informe:" );
Note : Os métodos showInputDialog e showMessageDialog são static. 
Programação Orientada a Objetos
Professora : Jane
*
Exemplo com E/S (vide Deitel): 
import javax.swing.JOptionPane; 
 public class Soma {
 public static void main( String args[] ) {
 String numero1, numero2;
 int n1, n2, resultado; 
 numero1 = JOptionPane.showInputDialog ("Informe um inteiro:");
  numero2 = JOptionPane.showInputDialog ("Informe outro inteiro");
  // convertendo
 n1 = Integer.parseInt( numero1 ); //Converte para inteiro
 n2 = Integer.parseInt( numero2 );
  // somando
 resultado = n1 + n2;
  JOptionPane.showMessageDialog(null, "A soma é "+ resultado, "Resultado:", 
 JOptionPane.PLAIN_MESSAGE);
  }
}
 
Programação Orientada a Objetos
Professora : Jane
*
Objetivo
Nosso objetivo no curso é trabalhar 
com swing, mas vez por outra usaremos classes do pacote java.awt .
Será que as classes de javax.swing são muito diferentes das 
classes de java.awt ?
Programação Orientada a Objetos
Professora : Jane
*
Formulários com AWT
Usando o AWT é possível criarmos formulários para entrada de dados usando os componentes gráficos mais conhecidos nas interfaces gráficas:
Classe TextField:
public TextField(int colunas) – cria uma campo de texto com o numero de colunas especificado
void setText(String texto) – seta o texto do campo
String getText() – recupera o texto do campo
boolean isEditable() – informa se o campo é editável
void setEditable(boolean editavel) – determina se o campo será ou não editável
Classe Button:
public Button(String label) – cria um botão com o label especificado
void setLabel(String label) – seta o label do botão
String getLabel() – retorna o label do botão
Classe Label:
public Label(String texto) - cria um label com o texto especificado
public Label(String texto, int alinhamento) – cria um label com o texto especificado no alinhamento especificado. O alinhamento pode ser Label.RIGHT, Label.LEFT ou Label.CENTER
String getText() – retorna o texto do label
void setText(String texto) – seta o texto do label
Programação Orientada a Objetos
Professora : Jane
*
Formulários com AWT
Todos os componentes listados anteriormente herdam de uma mesma classe: java.awt.Component
Em todos os componentes listados anteriormente podemos aplicar 4 métodos:
void setEnabled(boolean habilitado) – determina se o componente está habilitado, ou seja, se pode receber as entradas do usuário.
boolean isEnabled() – informa se o componente está habilitado.
void setVisible(boolean visivel) – determina se o componente está visível.
boolean isVisible() – informa se o componente está visível.
Após a criação do componente (com o operador new) é preciso adicioná-lo (método add). Ou seja :
Componente add(Component componente)
	 adiciona o componente no final da lista de componentes, ou seja, os componentes aparecem na ordem em que foram adicionados.
A questão do posicionamento dos componentes será visto mais tarde.
Programação Orientada a Objetos
Professora : Jane
*
Nosso objetivo no curso : Swing 
No pacote javax.swing há classes semelhantes às classes do pacote java.awt :
JPanel 
JLabel
JTextField
JButton
JComboBox
JList
entre outras.
Programação Orientada a Objetos
Professora : Jane
*
Exercícios
Usando JOptionPane, crie uma aplicação em Java para ler a altura e o peso de uma pessoa e apresentar seu IMC.
 
 IMC = peso/(altura*altura)
Adicione código ao programa anterior, identificando e apresentando a situação da pessoa de acordo com seu IMC :
IMC inferior a 18.5 : abaixo do peso
IMC de 18.5 até 24.99 : peso normal
IMC superior ou igual a 25 : acima do peso
Exemplo : Para formatar, especificando o número de casas decimais ...
double soma = 190.897877;
JOptionPane.showMessageDialog(null,"Resultado = " + String.format("%.2f",soma) );
Programação Orientada a Objetos
Professora : Jane
*
A classe JFrame 
Apenas começando...
A maioria das janelas criadas serão instâncias da classe JFrame ou de uma subclasse de JFrame.
JFrame fornece os atributos e comportamentos básicos de uma janela : barra de título na parte superior da janela, botões para minimizar, maximizar e fechar janela. Dessa forma poderemos personalizar.
Como é possível trabalhar ?
Sem arrastar componentes do NetBeans, mas sim adicionando-os através de código (método add).
Arrastando componentes da paleta do NetBeans (não é o objetivo do curso).
Programação Orientada a Objetos
Professora : Jane
*
Visualização geral
A forma com que os componentes aparecem dispostos no painel é chamada layout.
*

Teste o Premium para desbloquear

Aproveite todos os benefícios por 3 dias sem pagar! 😉
Já tem cadastro?

Outros materiais