Gestores de Layout. Arranjo de elementos numa Janela

Documentos relacionados
JAVA. Gerenciadores de Layout. Tiago Alves de Oliveira

Layout. Programação Orientada a Objetos Java. Prof. Geraldo Braz Junior. Baseado em material original de João Carlos Pinheiro CEFET/MA

Gerenciadores de Layout

Criando interfaces com o usuário. Continuação

Interfaces Gráficas: Interações Complexas

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

Gerenciamento de Layout

Gerenciadores de Layouts

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

Programação II. Cassio Diego

Elaborando Interfaces. Prof. André Aparecido da Silva Disponível em: Aulas 16, 17, e 18

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

Interfaces Gráficas POO. Prof. Márcio Delamaro

Programação Gráfica em Java Alguns Componentes javax.swing

JMENU, JDESKTOPPANE E JINTERNALFRAME

Gerenciadores de Layout: Layout de Borda, de Fluxo, de Grade, de Conjunto de Grades, de Caixa, do Cartão e Nulo

Elaborando Interfaces. Prof. André Aparecido da Silva Disponível em: Aulas 16, 17, e 18

Encerrando Introdução a Objetos e Classes Redefinição de Métodos (1)

Programação Orientada a Objectos - P. Prata, P. Fazendeiro

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

Interface Gráfica. GUI (Graphic User Interface) AWT e Swing Containers e componentes Layouts. Linguagem Java - Prof. Luciana Porcher Nedel 1

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

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

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

8. Interfaces Gráficas de Usuário

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

Elaborando as Interfaces Aulas 43, 44 e 45

Java Deployment Course

Gerenciadores de Layout Parte 1

Interfaces Gráficas (GUIs) em Java usando Swing Parte I - O básico

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

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

Interface Gráfica. Prof. Marcelo Cohen

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

MÓDULO 4 SWING Parte 3

Prof. Responsáveis Wagner Santos C. de Jesus

Programação Visual em Java

Exercício 1: Criar um programa que utiliza que desenha uma interface gráfica tal como descrito na Figura 1.1.

Programação Orientada a Objectos - P. Prata, P. Fazendeiro

Teste de Software: Existe Isto? Jorge Fernandes Junho de 2004

Roteiro para criação de Applet

COM220 Aula 17: Interface Gráfica Containers Swing

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

Processo Básico: OO + Eventos. Java First-Tier: Aplicações. Construção de Interface gráfica. Exemplo. Exemplo. Exemplo. Hierarquia de Composição

PROGRAMAÇÃO ORIENTADA A OBJETOS. Aula de Revisão para AV1

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

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

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

INF1636 PROGRAMAÇÃO ORIENTADA A OBJETOS

Curso de Aprendizado Industrial Desenvolvedor WEB

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

Orientação a Objetos

Tiago Alves de Oliveira. Tiago Alves de Oliveira

Elaborando as Interfaces dos trabalhos das aulas 25, 26 e 27.

Interface Gráficas Parte I. Bruno Crestani Calegaro

PROGRAMAÇÃO ORIENTADA A OBJETOS. Aula 1- Interfaces Gráficas com Swing

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

Programação Orientada a Objetos II

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

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

Principais Classes Swing AWT

A classe JTextField

Universidade Federal de Uberlândia Faculdade de Computação GGI030 Programação Orientada a Objetos 2o. Semestre de 2017 Prof.

Lista de Exercícios da disciplina Aplicações de Linguagem de Programação Orientada a objetos

Componentes Parte 03

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

JTextArea JMenuBar JTable JDesktopPane e JInternalFrame

Elaborando Interfaces. Prof. André Aparecido da Silva Disponível em: Aulas 19, 20 e 21

MANIPULAÇÃO DE EVENTOS

Recursos Complementares (Tabelas e Formulários)

Elaborando as Interfaces dos trabalhos das aulas 28, 29 e 30.

. Uma instância da classe JTextField gera uma instância da classe ActionEvent quando o objecto está activo e o utilizador pressiona a tecla ENTER.

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

1) Responda de acordo com os conceitos de orientação a objetos (0,5).

Síntese da aula anterior

Programação Orientada a Objetos

Adding User Interaction

Interfaces Gráficas com Swing. Professor Leonardo Larback

Programação Orientada a Objetos com Java. Prof. Júlio Machado

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

Natureza do Software e dos Sistemas

Prof. Rogério Albuquerque de Almeida. Programação Orientada a Objetos II Java Nona aula

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

Elaborando as Interfaces Aulas 31, 32 e 33

Aula Prática Criando Views e Controles

Interfaces Gráficas (GUIs) em Java usando Swing

Criação de Applets com o JBuilder Professor Sérgio Furgeri

Paradigmas de Programação React Native

PROGRAMAÇÃO ORIENTADA A OBJETOS. Aula de Revisão para AV1

Java First-Tier: Aplicações. Abstract Window Toolkit (AWT) Construção de Interfaces com Swing (I) Swing: Características

Tecnologias da Informação e Comunicação

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

Especialização em Engenharia de Software - CEUT

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

Criação Dinâmica de Interfaces Gráficas Definidas em XML. Manual de Utilização da Package Xil 0.5A

Roteiro. Introdução. Uma Introdução à Programação Orientada a Objetos e JAVA usando NetBeans. Objetos. Princípios da Orientação a Objetos

Aula 2 Eventos do Mouse by Pearson Education do Brasil

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

Introdução à Tecnologia Java 02/2012. Java Aula 02 15/08/2012. Celso Olivete Júnior.

Transcrição:

Programação Na Web Gestores de Layout Arranjo de elementos numa Janela 1 António Gonçalves Agenda Como os gestores de layout simplificam o desenho do interface Standard layout managers FlowLayout, BorderLayout, CardLayout, GridLayout, GridBagLayout, BoxLayout Posicionar elementos manualmente Estratégia para usar os gestores de layout eficientemente Uso de componentes invisíveis 2 Layout Managers 1

Gestores de Layout Associado a cada Container Define dimensões e posições dos componentes numa janela Úteis para janelas cuja dimensão pode sofrer alterações em diferentes S.O. Fácil uso para layouts simples Mas, de uso complexo quando se pretender obter layouts complexos Controlo layouts complexos Uso de container encadeados (cada um com o seu próprio gestor de layout) Uso de componentes invisíveis Desenvolvimento de gestores de layout Inibir os gestores de layout e arranjar os elementos manualmente 3 Layout Managers FlowLayout Layout por defeito para Panel e Applet Comportamento Redimensiona os componentes para as suas dimensões predeterminadas Coloca os componentes em linha da esquerda para a direita, topo para o fundo Linhas são centradas por defeito Constructores FlowLayout() Centra cada linha e mantém 5 entre entradas de uma linha e entre colunas FlowLayout(int alignment) Espaçamento de 5 pixels mas altera o alinhamento de linhas FlowLayout.LEFT, FlowLayout.RIGHT, FlowLayout.CENTER FlowLayout(int alignment, int hgap, int vgap) Diz qual é o alinhamento, e o espaçamento vertical e horizontal entre os componentes (em pixels) 4 Layout Managers 2

FlowLayout: Exemplo public class FlowTest extends Applet { public void init() { // setlayout(new FlowLayout()); for(int i=1; i<6; i++) { add(new Button("Button " + i)); 5 Layout Managers Flow Layout import javax.swing.*; import java.awt.*; public class SwingFrame { public static void main( String args[] ) { JFrame win = new JFrame( "My First GUI Program" ); win.getcontentpane().setlayout( new FlowLayout() ); for ( int i = 0; i < 10; i++ ) win.getcontentpane().add( new JButton( String.valueOf( i ) ) ); win.pack(); win.show(); // SwingFrame 6 Layout Managers 3

FlowLayout 7 Layout Managers BorderLayout Layout por defeito de Frame e Dialog Comportamento Divide o Container em cinco regiões Cada região é identificada por uma constante do tipo BorderLayout NORTH, SOUTH, EAST, WEST, e CENTER NORTH e SOUTH respeita o altura preferencial do componente EAST e WEST respeita o comprimento preferencial do componente CENTER é atribuído o espaço que resta 8 Layout Managers 4

BorderLayout (Continua) Construtores BorderLayout() Border layout sem espaçamento entre componentes BorderLayout(int hgap, int vgap) Border layout com a definição de pixels entre regiões Adicionar Componentes add(component, BorderLayout.REGION) Especificar sempre a região em que adicionar os componentes CENTER por defeito 9 Layout Managers BorderLayout: Exemplo public class BorderTest extends Applet { public void init() { setlayout(new BorderLayout()); add(new Button("Button 1"), BorderLayout.NORTH); add(new Button("Button 2"), BorderLayout.SOUTH); add(new Button("Button 3"), BorderLayout.EAST); add(new Button("Button 4"), BorderLayout.WEST); add(new Button("Button 5"), BorderLayout.CENTER); 10 Layout Managers 5

BorderLayout import javax.swing.*; import java.awt.*; public class SwingFrame { public static void main( String args[] ) { JFrame win = new JFrame( "My First GUI Program" ); Container content = win.getcontentpane(); content.setlayout( new BorderLayout() ); content.add( "North", new JButton( "North" ) ); content.add( "South", new JButton( "South" ) ); content.add( "East", new JButton( "East" ) ); content.add( "West", new JButton( "West" ) ); content.add( "South", new JButton( "South" ) ); content.add( "Center", new JButton( "Center" ) ); win.pack(); win.show(); // SwingFrame 11 Layout Managers BorderLayout 12 Layout Managers 6

GridLayout Comportamento Divide uma janela em vários rectângulos de dimensões idênticas Itens são colocados nas células da esquerda-para-direita, topo-para-base Ignora as dimensões predefinidas de um componente Muitos poucos componentes resulta em células em branco Demasiados componentes resulta em colunas extras 13 Layout Managers GridLayout (Continua) Constructores GridLayout() Cria uma linha com uma coluna por cada componente GridLayout(int rows, int cols) Divide a janela num número definido de linhas e colunas Cada linha ou coluna (mas não ambos) podem ser zero GridLayout(int rows, int cols, int hgap, int vgap) Usar o espaçamento entre células 14 Layout Managers 7

GridLayout, Exemplo public class GridTest extends Applet { public void init() { setlayout(new GridLayout(2,3)); // 2 rows, 3 cols add(new Button("Button One")); add(new Button("Button Two")); add(new Button("Button Three")); add(new Button("Button Four")); add(new Button("Button Five")); add(new Button("Button Six")); 15 Layout Managers GridLayout gridlayout( 2, 4 ) gridlayout( 0, 4 ) gridlayout( 4, 4 ) gridlayout( 10, 10 ) 16 Layout Managers 8

CardLayout Comportamento Empilha os componentes uns sobre os outros, somente o que esta no topo é visível Associada um nome com cada componente Panel cardpanel; CardLayout layout new CardLayout(); cardpanel.setlayout(layout);... cardpanel.add("card 1", component1); cardpanel.add("card 2", component2);... layout.show(cardpanel, "Card 1"); layout.first(cardpanel); layout.next(cardpanel); 17 Layout Managers CardLayout, Exemplo 18 Layout Managers 9

GridBagLayout Comportamento Divide o container em linhas e colunas. Um componente pode ocupar mais de uma célula. Cada componente possui um GridBagConstraint, que tem instruções de posicionamento e dimensionamento. O GridBagConstraints indica: Como os componentes são dispostos na áreas de visualização Indica a célula que cada componente começa e acaba Como os componentes são esticados quando existe espaço extra Alinhamento das células 19 Layout Managers GridBagLayout: Passos básicos Criar o layout, guardar uma referencia a ele GridBagLayout layout = new GridBagLayout(); setlayout(layout); Criar um objecto do tipo GridBagConstraints GridBagConstraints constraints = new GridBagConstraints(); Indicar os GridBagConstraints para o componente 1 constraints.gridx = x1; constraints.gridy = y1; constraints.gridwidth = width1; constraints.gridheight = height1; Adicionar component 1 na janela, incluir as restrições add(component1, constraints); Repetir os dois últimos passos para cada um dos componentes restantes 20 Layout Managers 10

GridBagConstraints É feita uma cópia quando o componentes é adicionado a janela Por isto, é possível reutilizar GridBagConstraints GridBagConstraints constraints = new GridBagConstraints(); constraints.gridx = x1; constraints.gridy = y1; constraints.gridwidth = width1; constraints.gridheight = height1; add(component1, constraints); constraints.gridx = x1; constraints.gridy = y1; add(component2, constraints); 21 Layout Managers GridBagLayout: Exemplo 22 Layout Managers 11

GridBagLayout, Exemplo public GridBagTest() { setlayout(new GridBagLayout()); textarea = new JTextArea(12, 40); // 12 rows, 40 cols bsaveas = new JButton("Save As"); filefield = new JTextField("C:\\Document.txt"); bok = new JButton("OK"); bexit = new JButton("Exit"); GridBagConstraints c = new GridBagConstraints(); // Text Area. c.gridx = 0; c.gridy = 0; c.gridwidth = GridBagConstraints.REMAINDER; c.gridheight = 1; c.weightx = 1.0; c.weighty = 1.0; c.fill = GridBagConstraints.BOTH; c.insets = new Insets(2,2,2,2); //t,l,b,r add(textarea, c);... 23 Layout Managers GridBagLayout, Exemplo // Save As Button. c.gridx = 0; c.gridy = 1; c.gridwidth = 1; c.gridheight = 1; c.weightx = 0.0; c.weighty = 0.0; c.fill = GridBagConstraints.VERTICAL; add(bsaveas,c); // Filename Input (Textfield). c.gridx = 1; c.gridwidth = GridBagConstraints.REMAINDER; c.gridheight = 1; c.weightx = 1.0; c.weighty = 0.0; c.fill = GridBagConstraints.BOTH; add(filefield,c);... 24 Layout Managers 12

GridBagLayout, Exemplo // Exit Button. c.gridx = 3; c.gridwidth = 1; c.gridheight = 1; c.weightx = 0.0; c.weighty = 0.0; c.fill = GridBagConstraints.NONE; add(bexit,c); // Filler so Column 1 has nonzero width. Component filler = Box.createRigidArea(new Dimension(1,1)); c.gridx = 1; c.weightx = 1.0; add(filler,c);... 25 Layout Managers GridBagLayout, Resultado With Box filler at (2,1) Without Box filler at (2,1) 26 Layout Managers 13

Containers encadeados, Exemplo 27 Layout Managers Containers encadeados, Exemplo public NestedLayout() { setlayout(new BorderLayout(2,2)); textarea = new JTextArea(12,40); // 12 rows, 40 cols bsaveas = new JButton("Save As"); filefield = new JTextField("C:\\Document.txt"); bok = new JButton("OK"); bexit = new JButton("Exit"); add(textarea,borderlayout.center); // Set up buttons and textfield in bottom panel. JPanel bottompanel = new JPanel(); bottompanel.setlayout(new GridLayout(2,1)); 28 Layout Managers 14

Containers encadeados, Exemplo JPanel subpanel1 = new JPanel(); JPanel subpanel2 = new JPanel(); subpanel1.setlayout(new BorderLayout()); subpanel2.setlayout (new FlowLayout(FlowLayout.RIGHT,2,2)); subpanel1.add(bsaveas,borderlayout.west); subpanel1.add(filefield,borderlayout.center); subpanel2.add(bok); subpanel2.add(bexit); bottompanel.add(subpanel1); bottompanel.add(subpanel2); add(bottompanel,borderlayout.south); 29 Layout Managers Containers encadeados, Resultado 30 Layout Managers 15