APLICAÇÕES DE LINGUAGEM DE PROGRAMAÇÃO ORIENTADA A OBJETOS COMPONENTES GUI – PARTE I Prof. Thiago Pereira Rique thiagorique2011@gmail.com http://thiagorique.wordpress.com/
Agenda Introdução A nova interface Nimbus do Java Look and feel padrão Metal do Java Entrada/saída baseada em GUI simples com JOptionPane Visão geral de componentes Swing Exibição de texto e imagens em uma janela Campos de texto e uma introdução ao tratamento de evento com classes aninhadas
INTRODUÇÃO Interface gráfica de usuário (Graphical User Interface – GUI) Aparência Comportamento Componentes GUI (controles ou widgets (abreviação de window gadgets)) Objetos com os quais o usuário interage via mouse, teclado ou outros mecanismos.
A nova interface Nimbus do Java Atualização 10 do Java SE 6 Há 3 modos de utilizar o Nimbus: Configurá-lo como padrão para todos os aplicativos Java no computador Configurá-lo como a interface no momento em que se carrega um aplicativo (linha de comando) Configurá-lo como a interface diretamente no aplicativo (programaticamente)
A nova interface Nimbus do Java
A nova interface Nimbus do Java
A nova interface Nimbus do Java Outro exemplo: http://docs.oracle.com/javase/tutorial/uiswing/lookandfeel/nimbus.html
LOOK AND FEEL PADRÃO METAL DO JAVA Default look and feel - Metal
LOOK AND FEEL PADRÃO METAL DO JAVA Default look and feel - Metal
Entrada/saída baseada em GUI simples com JOptionPane
Entrada/saída baseada em GUI simples com JOptionPane Diálogos de entrada Diálogos de mensagem
Entrada/saída baseada em GUI simples com JOptionPane Constantes de diálogo de mensagem JOptionPane
VISÃO GERAL DE COMPONENTES SWING JLabel Exibe texto não editável ou ícones. JTextField Permite ao usuário inserir dados do teclado. Também pode ser utilizado para exibir texto editável ou não editável. JButton Desencadeia um evento quando o usuário clicar nele com o mouse. JCheckBox Especifica uma opção que pode ser ou não selecionada.
VISÃO GERAL DE COMPONENTES SWING JComboBox Fornece uma lista drop-down de itens a partir da qual o usuário pode fazer uma seleção clicando em um item ou possivelmente digitando na caixa. JPanel Fornece uma área em que os componentes podem ser colocados e organizados. Também pode ser utilizado como uma área de desenho para imagens gráficas.
VISÃO GERAL DE COMPONENTES SWING Swing versus AWT (Abstract Window Toolkit) Superclasses de componentes GUI leves (independentes de plataforma) do Swing
EXIBIÇÃO DE TEXTO E IMAGENS EM UMA JANELA Janelas Instâncias da classe JFrame ou subclasses de JFrame. JFrame: subclasse indireta da classe java.awt.Window. Para nossos exemplos: Classe responsável pela construção da GUI (subclasse de JFrame). Classe que cria e exibe a janela principal do aplicativo (main). Rotulando componentes GUI JLabel
EXIBIÇÃO DE TEXTO E IMAGENS EM UMA JANELA
EXIBIÇÃO DE TEXTO E IMAGENS EM UMA JANELA
EXIBIÇÃO DE TEXTO E IMAGENS EM UMA JANELA
EXIBIÇÃO DE TEXTO E IMAGENS EM UMA JANELA Saída do aplicativo
EXIBIÇÃO DE TEXTO E IMAGENS EM UMA JANELA Especificando o layout Gerenciadores de layout (FlowLayout) Componentes da esquerda para a direita. Método setLayout herdado indiretamente da classe Container Argumento: objeto de uma classe que implemente a interface LayoutManager. Criando e anexando label1 “Label com texto” para o construtor da classe JLabel setToolTipText add(label1);
EXIBIÇÃO DE TEXTO E IMAGENS EM UMA JANELA Criando e anexando label2 Um ícone é especificado como um argumento Icon para um construtor ou para o método setIcon do componente. Icon Objeto de uma classe que implementa a interface Icon (javax.swing). ImageIcon (javax.swing) .gif, .png, .jpg (ou .jpeg) getClass().getResource(“Login_icon.png”) Criando e anexando label3 setText, getText setIcon, getIcon setHorizontalTextPosition, setVerticalTextPosition
EXIBIÇÃO DE TEXTO E IMAGENS EM UMA JANELA Criando e exibindo uma janela LabelFrame Operação de fechamento padrão da janela setDefaultCloseOperation JFrame.EXIT_ON_CLOSE
CAMPOS DE TEXTO E UMA INTRODUÇÃO AO TRATAMENTO DE EVENTO COM CLASSES ANINHADAS As GUIs são baseadas em eventos Clicar um botão, digitar em um campo de texto, etc. Handler de evento Código que realiza uma tarefa em resposta a um evento Tratamento de eventos Processo total de responder a eventos
CAMPOS DE TEXTO E UMA INTRODUÇÃO AO TRATAMENTO DE EVENTO COM CLASSES ANINHADAS Continua...
CAMPOS DE TEXTO E UMA INTRODUÇÃO AO TRATAMENTO DE EVENTO COM CLASSES ANINHADAS Continua...
CAMPOS DE TEXTO E UMA INTRODUÇÃO AO TRATAMENTO DE EVENTO COM CLASSES ANINHADAS Continua...
CAMPOS DE TEXTO E UMA INTRODUÇÃO AO TRATAMENTO DE EVENTO COM CLASSES ANINHADAS Continua...
CAMPOS DE TEXTO E UMA INTRODUÇÃO AO TRATAMENTO DE EVENTO COM CLASSES ANINHADAS
CAMPOS DE TEXTO E UMA INTRODUÇÃO AO TRATAMENTO DE EVENTO COM CLASSES ANINHADAS
CAMPOS DE TEXTO E UMA INTRODUÇÃO AO TRATAMENTO DE EVENTO COM CLASSES ANINHADAS
CAMPOS DE TEXTO E UMA INTRODUÇÃO AO TRATAMENTO DE EVENTO COM CLASSES ANINHADAS
CAMPOS DE TEXTO E UMA INTRODUÇÃO AO TRATAMENTO DE EVENTO COM CLASSES ANINHADAS Passos necessários para configurar o tratamento de evento de um componente GUI Crie uma classe que represente o handler de evento. Implemente uma interface apropriada (interface ouvinte de eventos) na classe do passo 1. Indique que um objeto da classe dos passos 1 e 2 deve ser notificado quando o evento ocorrer (registrar handler de evento).
CAMPOS DE TEXTO E UMA INTRODUÇÃO AO TRATAMENTO DE EVENTO COM CLASSES ANINHADAS Utilizando uma classe aninhada para implementar um handler de evento Classes de primeiro nível Classes aninhadas (static ou não static) Não static: classes internas (handlers de eventos) “Cada evento é representado por uma classe e pode ser processado apenas pelo tipo de handler de evento apropriado” Enter em um JTextField ActionEvent (java.awt.event) ActionListener (java.awt.event) actionPerformed
CAMPOS DE TEXTO E UMA INTRODUÇÃO AO TRATAMENTO DE EVENTO COM CLASSES ANINHADAS Registrando o handler de evento para cada campo de texto textField.addActionListener(handler); Detalhes do método actionPerformed da classe TextFieldHandler Origem do evento Método getSource if (event.getSource() == textField1) Método getActionCommand
REFERÊNCIA DEITEL, H.M; Java Como Programar. Ed. Pearson, 8ª ed, 2010.