Jframe, JDialog ou JApplet



Documentos relacionados
Interface com o Usuário (UI) UIs Desacopladas (2/3) BSI Bacharelado em Sistemas de Informação LOO Linguagens Orientadas a Objetos

Arquitetura de Tratamento de Eventos em Programas com GUI - Graphical User Interface

JAVA. Marcio de Carvalho Victorino. Interface Gráfica em Java (GUI)

AWT Versus Swing. Java Deployment Course: Aula 5. por Jorge H C Fernandes (jhcf@di.ufpe.br) CESAR-DI-UFPE Recife, 1999

Swing. Page 1. Swing. Prof. Anderson Augustinho Uniandrade

Construção de Interfaces Gráficas

JFrame. JLabel : Utilizado como rótulo para exibição de texto e ícones. Interface Gráfica de JAVA - Graphical User Interface (GUI)

8. Interfaces Gráficas de Usuário

Programação III. Interface Gráfica - Swing. Interface Gráfica Swing Jocélio Passos joceliodpassos@bol.com.br. Interface Gráfica - Swing

Aplicações Gráficas com AWT

Curso de Java Módulo II Swing Fábio Mengue Centro de Computação - Unicamp

Tratamento de Eventos

Java Foundation Classes Coleção de pacotes para criação de aplicações completas Desktop Interfaces gráficas (GUIs- Graphical User Interface)

Aplicação Linguagem de Programação Orientada a Objeto

Construção de Interfaces Gráficas - Introdução

PROGRAMAÇÃO ORIENTADA A OBJETOS -INTERFACES GRÁFICAS. Prof. Angelo Augusto Frozza, M.Sc. frozza@ifc-camboriu.edu.br

JCheckbox JRadioButton JComboBox JList JMenu... Alguns componentes já vistos em aula JButton JLabel JTextField

Interface Gráficas Parte I. Bruno Crestani Calegaro

Módulo 7. Interface Gráfica com o Usuário GUI - Introdução. Programação Orientada a Objetos I Java (Rone Ilídio)

Aula 11: Interfaces gráficas (1/2): elementos de interface Swing

Pacote Java Swing Parte 1

Como construir aplicaçõ e applets

Interface Gráfica com o Usuário (GUI) Profa. Isabel Harb Manssour (Material adaptado das aulas da Profa. Luciana Nedel e do Prof.

Interface Gráfica. LPG II Java Interface Gráfica AWT. Introdução. AWT - Abstract Window Toolkit

Interface Gráfica. Prof. Marcelo Cohen. (material da Profa. Luciana Nedel) Graphical User Interface (GUI)

Interface Gráfica 2. E/S pode ser feita por interface gráfica Biblioteca Swing. javax.swing.*

Programação Visual em Java

Programação Java. Construção de Interfaces com Swing (I)

MÓDULO 4 SWING Parte 3

Curso de Aprendizado Industrial Desenvolvedor WEB

Desenvolvimento de Aplicações Desktop

UNIVERSIDADE FEDERAL DO PARANÁ. CURSO: Ciência da Computação DATA: / / 2013 PERÍODO: 4 o.

INTERFACE COM O USUÁRIO (em Java) Programação Orientada a Objetos

Java - Swing. Raphaela Galhardo raphaela@j2eebrasil.com.br

JFC/Swing. Java Avançado Interface Gráfica JFC/Swing. Introdução JFC / Swing. Introdução JFC / Swing

Programação Orientada a Objetos em Java. GUI Graphical User Interface

Entender princípios de projeto. Capacitação para construir GUIs. Entender os pacotes que contém componentes de GUI, e as classes e interfaces de

Aula 12 POO 1 Interface Gráfica no Java. Profa. Elaine Faria UFU

Capítulo 12 Eventos de interacção

Programação Gráfica em Java.

INF1337 LINGUAGEM DE PROGRAMAÇÃO ORIENTADA A OBJETOS

Programação Orientada a Objetos II

Interface Gráfica Swing. Leonardo Gresta Paulino Murta

Linguagem Java - Prof. Luciana Porcher Nedel 1. Um container genérico e visual. Ela trabalha em cooperação com o controle de layouts.

Interface Gráfica. Prof. Marcelo Cohen

Programação Orientada a Objetos Flávio de Oliveira Silva 217

Técnicas de Programação II

Programação Orientada a Objetos

1) De acordo com o trecho de código escrito na linguagem JAVA, responda a questão abaixo:

API Swing Java. 1. Introdução. 2. Objetivos. 3. Surgimento do Swing. André Scarmagnani 1, Matheus Madalozzo 1, Miguel Diogenes Matrakas 1

Prof. Fernando V. Paulovich 25 de julho de SCC Programação Orientada a Objetos

Programação Java. Construção de Interface gráfica. Processo Básico: OO + Eventos. Exemplo

Interfaces Gracas em Java

Curso Java Starter. 1

Gestão de eventos do Rato e teclado

Slide 1 Deitel/Deitel, 8e. Java Como programar Copyright 2010 Pearson Education

Gerenciadores de Layouts

Programação por Objectos. Interfaces gráficas. Swing 1/52

JTABLE STUDENT CONTROL JSC Gil Eduardo de Andrade / Emílio Rudolfo Fey Neto

Sumário Introdução à 3a. Edição Introdução Dia 1 - Conceitos Iniciais Dia 2 - Bem-vindo ao Mundo Real... 43

Dados em Java. Componentes GUI Parte I

Objectivos:. Construir programas com interfaces gráficas Graphical User Interface (GUI) application programs

Programação Orientada a Objetos II

Agenda. JFC (Java FoundaNon Classes) Interfaces Gráficas: layout manager JFC. Componentes do Swing. Pluggable Look and Feel

Introdução à Programação Gráfica em Java

Programação de Interfaces Gráficas. Aula 1. Carlos Eduardo de Carvalho Dantas

Natureza do Software e dos Sistemas

Criação de Applets Package: Class Name Base Class: Generate header comments: Can run standalone: Generate Standard methods:

Roteiro para criação de Applet

Programação. 3 Período

JAVA APLICAÇÕES GRÁFICAS Propriedades Utilizadas: imagecomposite FACULDADE DE TECNOLOGIA SENAC PELOTAS

Interface Gráfica. Disciplina: Desenvolvimento de Sistemas. Professor: Thiago Silva Prates

CA: Cidade: UF CARTÃO RESPOSTA QUESTÃO RESPOSTA QUESTÃO RESPOSTA A F B G C H D I

Comando if.. else. 2. JOptionPane. showmessagedialog. showconfirmdialog. showinputdialog. Caixa de diálogo para mostrar mensagem simples

Programação com Acesso a BD. Programação com Acesso a BD

Especialização em Engenharia de Software - CEUT

Introdução a programação gráfica em Java com Swing

{ System.exit(0); Exemplo (WindowAdapter) import java.awt.*; import java.awt.event.*;

CARTÃO RESPOSTA QUESTÃO RESPOSTA QUESTÃO RESPOSTA A F B G C H D I E J

Desenvolvendo aplicações

Componentes da Interface Gráfica da Linguagem Java

Componentes GUI A aparência e maneira como um usuário pode interagir com componentes AWT diferem de acordo com a plataforma. Componentes Swing permite

Introdução à Programação. Interfaces Gráficas

Computação II - Java Prof. Adriano Joaquim de Oliveira Cruz Aula Prática - Programando GUIs

Java AWT Objectos e Eventos. Label Button TextField Checkbox RadioButton Combobox

Transcrição:

Objetivos Introduzir o conceito de interfaces gráficas Desenvolvimento de Interfaces Gráficas Ms. Christien L. Rachid FUPAC E-Mail: christienrachid@gmail.com Apresentar Swing e AWT Definir o conceito para containers gráficos Apresentar os principais componentes existentes para a construção de uma interface gráfica Swing Swing Características Swing Conjunto de componentes direcionados para aplicações baseadas em formulários Swing é parte da JFC (Java Foundation Classes) Componentes leves Light-weight Arquitetura dos componentes MVC 3 4

Containers Janela, Diálogo ou Applet Jframe, JDialog ou JApplet JFrame: janelas primárias JDialog: janelas secundárias JApplet: painel em um área do browser Top Level Container public class SwingApplication {... public static void main(string[] args) {... JFrame frame = new JFrame(" ("SwingApplication"); // cria componentes em uma variável contents frame.getcontentpane().add(contents, BorderLayout.CENTER); //Finish setting up the frame, and show it. frame.addwindowlistener(...); frame.pack(); frame.setvisible(true); 5 6 JFrame JFrame public class FrameTester { public static void main (String args[]) { JFrame f = new JFrame ("JFrame Example"); Container c = f.getcontentpane(); c.setlayout (new FlowLayout()); for (int i = 0; i < 5; i++) { c.add (new JButton ("No")); c.add (new Button ("Batter")); c.add (new JLabel ("Swing")); f.setsize (300, 200); f.setvisible(true); 7 8

JTabbedPane JTabbedPane public class TabbedPanel extends JPanel { String tabs[] = {"One", "Two", "Three", "Four"; public JTabbedPane tabbedpane = new JTabbedPane(); public TabbedPanel() { setlayout (new BorderLayout()); for (int i=0;i< =0;i<tabs.length;i++) tabbedpane.addtab (tabs[i], null, createpane (tabs[i])); tabbedpane.setselectedindex(0); add (tabbedpane, BorderLayout.CENTER); 9 10 JTabbedPane JSplitPane JPanel createpane(string s) { JPanel p = new JPanel(); p.add(new JLabel(s)); return p; 11 12

JScrollPane JScrollPane public class ScrollPanel extends JPanel { public ScrollPanel() { setlayout(new BorderLayout()); Icon bigtiger = new ImageIcon("BigTiger.gif"); JLabel tigerlabel = new JLabel(bigTiger); JScrollPane scrollpane = new JScrollPane(tigerLabel tigerlabel); add(scrollpane, BorderLayout.CENTER); 13 14 Gerenciadores de Layout Gerenciadores de Layout Em inglês (Layout Manager) Definem como os componentes gráficos são dispostos em um container AWT/SWING. Os gerenciadores de layout garantem a consistência visual em diferentes resoluções de tela e diferentes plataformas. Layout Managers calculam coordenadas automaticamente, baseados em regras Eles controlam a posição, características e o comportamento dos componentes nos contêineres 15 16

Tipos de Gerenciadores de Layout Nulo (Posicionamento absoluto) FlowLayout BorderLayout CardLayout GridLayout Gerenciadores de Layout Todo container possui um gerenciador de layout a ele associado. Um programador pode também criar novos gerenciadores de layout (para aplicações com necessidades especiais). GridBagLayout Outros (personalizados) 17 18 Flow Layout Grid Layout À medida que os componentes são acrescentados no container, eles são posicionados em uma linha da esquerda para a direita. O tamanho de cada componente do container é calculado através do seu tamanho preferido (getpreferedsize). Uma nova linha é automaticamente criada quando falta espaço na linha corrente. Componentes são colocados em uma matriz com um numero específico de colunas ou linhas. Cada componente ocupa exatamente uma célula da matriz. As células são preenchidas da esquerda para direita e do topo para a base. 19 20

Border Layout Swing Widgets Define 5 áreas pré-definidas onde um componente ou um grupo de componentes podem ser colocados: North, South, East, West, e Center. O programador especifica a área na qual um componente deve aparecer. São as classes de componentes Swing. Possuem como base a classe JComponent A partir delas foram criadas inúmeras classes descendentes para construção de interfaces gráficas. 21 22 Tooltips Tooltips public class TooltipPanel extends JPanel { public TooltipPanel() { JButton mybutton = new JButton("Hello"); mybutton.settooltiptext ("World"); add(mybutton); 23 24

Icon e ImageIcon Icon e ImageIcon ImageIcon é usado pela Swing, ao invés de Image (AWT), para desenho de imagens em componentes Motivos: Image carrega assincronamente Image não é serializável ImageIcon Implementação da interface Icon que cria um ícone a partir de uma imagem Icon tinypicture = new ImageIcon( Imagem.gif"); 25 26 JLabel JButton 27 28

JButton JCheckBox, JRadioButton, JToggleButton public class ButtonPanel extends JPanel { public ButtonPanel() { Icon tigericon = new ImageIcon("SmallTiger.gif"); JButton mybutton = new JButton("Tiger", tigericon); add(mybutton); 29 30 JCheckBox, JRadioButton, JToggleButton ButtonGroup public class ToggleButtonPanel extends JPanel { public ToggleButtonPanel() { // Set the layout to a GridLayout setlayout(new GridLayout(4,1, 10, 10)); add (new JToggleButton ("Fe")); add (new JToggleButton ("Fi Fi")); add (new JToggleButton ("Fo Fo")); add (new JToggleButton ("Fum Fum")); Possibilita o agrupamento de botões Qualquer descendente de AbstractButton pode ser agrupado Muito utilizado em conjunto com objetos do tipo JToggleButton e JRadioButton 31 32

ButtonGroup ButtonGroup group = new ButtonGroup(); group.add(new JRadioButton( Teste 1 )); group.add(new JRadioButton( Teste 2 ); Componentes JText* Fornecem funcionalidades de um editor de textos simples copy(), cut(), paste() getselectedtext() setselectionstart(), setselectionend() selectall(), replaceselection() gettext(), settext() seteditable() setcaretposition() 33 34 JTextField and JTextArea JTextPane // Instantiate a new TextField JTextField tf = new JTextField(); // Instantiate a new TextArea JTextArea ta = new JTextArea(); // Initialize the text of each tf.settext("textfield"); ta.settext("jtextarea\n Allows Multiple Lines"); add(tf); add(new JScrollPane(ta)); Editor de textos mais completo com formatação de textos, quebra de palavras (word wrap) e exibição de imagens 35 36

JTextPane JPasswordField StyleConstants.setFontFamily(attr, "Serif"); StyleConstants.setFontSize(attr, 18); StyleConstants.setBold(attr, true); textpane.setcharacterattributes(attr, false); add(textfield textfield, BorderLayout.NORTH); add(new JScrollPane(textArea textarea), BorderLayout.CENTER); add(new JScrollPane(textPane textpane), BorderLayout.SOUTH); 37 38 JPasswordField JFormattedTextField class PasswordPanel extends JPanel { PasswordPanel() { JPasswordField pass1 = new JPasswordField(20); JPasswordField pass2 = new JPasswordField(20); pass2.setechochar ('?'); add(pass1); add(pass2); 39 40

JFormattedTextField JSlider this.add(new JLabel("Máscara de Data:")); DateFormat dateformat = DateFormat.getDateInstance( DateFormat.SHORT); JFormattedTextField data = new JFormattedTextField(dateFormat); data.setvalue(new Date()); 41 42 JComboBox JComboBox public class ComboPanel extends JPanel { String choices[] = { "Mercury", "Venus", "Earth", "Mars", "Jupiter", "Saturn", "Uranus","Neptune", "Pluto"; public ComboPanel() { JComboBox combo1 = new JComboBox(); JComboBox combo2 = new JComboBox(); for (int i=0;i< =0;i<choices.length;i++) { combo1.additem (choices[i]); combo2.additem (choices[i]); combo2.seteditable(true); combo2.setselecteditem("x"); combo2.setmaximumrowcount(4); add(combo1); add(combo2); 43 44

JMenu JPopupMenu 45 46 JPopupMenu JList public class PopupPanel extends JPanel { JPopupMenu popup = new JPopupMenu (); public PopupPanel() { JMenuItem item; popup.add (item = new JMenuItem ("Cut")); popup.add (item = new JMenuItem ("Copy")); popup.add (item = new JMenuItem ("Paste")); popup.addseparator(); popup.add (item = new JMenuItem ("Select All")); 47 48

JList JTable public class ListPanel extends JPanel { String label [] = {"Cranberry", "Orange", "Banana", "Kiwi", "Blueberry", "Pomegranate", "Apple", "Pear", "Watermelon", "Raspberry", "Snozberry" ; public ListPanel() { setlayout (new BorderLayout()); JList list = new JList(label); JScrollPane pane = new JScrollPane(list); add(pane, BorderLayout.CENTER); 49 50 Componentes Avançados Swing JTree e JTable são exemplos de componentes mais avançados SWING. Tabelas e Árvores: http://www.oracle.com/technetwork/java/java se/documentation/index.html Manipulação de Eventos Eventos: O que são? São ações dos usuários na interface gráfica. Quando uma ação é executada, eventos são gerados. Eventos são objetos que descrevem o que ocorreu. Existem diversos tipos de classes de eventos para descrever diferentes categorias gerais de ações do usuário. 51 52

Como os eventos são processados? Esquema do modelo de delegação Através de um modelo de delegação de eventos. Os componentes implementam rotinas de manipulação de eventos (listener) com o objetivo de receber eventos. Suporte a eventos está no pacote: java.awt.event. FRAME PANEL BUTTON Panel e Frame event handlers Action event Action handler actionperformed (ActionEvent e) {. 53 54 Exemplo: delegação import java.awt.*; import java.awt.event.*;.*; class ButtonHandler implements ActionListener { public void actionperformed (ActionEvent e){ System.out.println ("Acao executada"); public class TesteButton { public static void main (String args[]) { Frame f = new Frame("Teste de evento"); Button b = new Button ("Pressione me!"); b.addactionlistener (new ButtonHandler()); f.add ("Center",b); f.pack(); f.setvisible(true); Eventos gerados pelos componentes Cada componente possui um conjunto de tipos de eventos a ele associado. Os componentes que podem gerar eventos de ações possuem métodos para adicionar ou remover listeners. addactionlistener removeactionlistener 55 56

Interface de eventos listener da AWT Interface de eventos listener da AWT Interface Listener Classe Adapter Métodos ActionListener ---------- actionperformed(actionevent) AdjustmentListener --------- adjustmentvaluechanged(adjustmentevent) ComponentListener ComponentAdapter componenthidden(componentevent) componentmoved(componentevent) componentrezised(componentevent) componentshown(componentevent) ContainerListener ContainerAdapter componentadded(containerevent) componentremoved(containerevent) FocusListener FocusAdapter focusgained(focusevent) focuslost(focusevent) ItemListener -------- itemstatechanged(itemevent) KeyListener KeyAdapter keypressed(keyevent) keyreleased(keyevent) keytyped(keyevent) MouseListener MouseAdapter mouseclicked(mouseevent) mouseentered(mouseevent) mouseexited(mouseevent) mousepressed(mouseevent) mouserealesed(mouseevent) Interface Listener Classe Adapter Métodos MouseMotionListener MouseMotionAdapter mousedragged (MouseEvent) mousemoved(mouseevent) TextListener ------ textvaluechange(textevent) WindowListener WindowAdapter windowactived(windowevent) windowclosed(windowevent) windowclosing(windowevent) windowdeactivated(windowevent) windowdeiconified(windowevent) windowiconified(windowevent) windowopened(windowevent) 57 58 A hierarquia de classes de eventos A classe AWTEvent Cada método de cada interface listener dos eventos, possui um único argumento: uma instância de uma classe que descende da classe java.awt.awtevent. Esta classe não define nenhum método ou API que o usuário, usualmente, necessite. Contudo, herda um método útil da classe java.util.eventobject; Object getsource: : retorna o objeto que gerou o evento A hierarquia de classes de eventos java.lang.objet java.util.eventobject AWTEvent ActionEvent AdjustmentEvent ComponentEvent ItemEvent TextEvent ContainerEvent FocusEvent InputEvent WindowEvent KeyEvent MouseEvent 59 60

Utilizando JOption Pane É utilizado para mostrar mensagens de diálogo para o usuário Fica no pacote javax.swing Permite: Mensagens solicitando entrada de dados Mensagens solicitando resposta à um questionamento Mensagens de informação Tipos de Mensagens São pré definidas em constantes da classe JOptionPane Descrição: PLAIN_MESSAGE INFORMATION_MESSAGE ERROR_MESSAGE WARNING_MESSAGE QUESTION_MESSAGE 61 62 Métodos de JOptionPane showmessagedialog() showinputdialog() showconfirmdialog() Conclusões AWT e SWING permitem a construção de interfaces gráficas portáveis entre resoluções gráficas e plataformas Modelo de eventos Java é avançado e permite separação clara entre código de negócios e implementação API SWING é realmente OO e permite a construção de aplicações MVC 63 64