JAVA. Gerenciadores de Layout. Tiago Alves de Oliveira

Documentos relacionados
Interfaces Gráficas: Interações Complexas

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

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

JMENU, JDESKTOPPANE E JINTERNALFRAME

Gestores de Layout. Arranjo de elementos numa Janela

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

Gerenciadores de Layouts

Programação II. Cassio Diego

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

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

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

Orientação a Objetos

Gerenciamento de Layout

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

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

Gerenciadores de Layout Parte 1

Tiago Alves de Oliveira. Tiago Alves de Oliveira

Programação Orientada a Objetos II

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

Orientação a Objetos

Interfaces Gráficas com Swing. Professor Leonardo Larback

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

(INFORMAÇÕES PARA LABORATÓRIOS VIRTUAIS) Nome do laboratório: Laboratório de Programação (INFORMAÇÕES PARA FERRAMENTA)

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

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 Java. Construção de Interface gráfica. Processo Básico: OO + Eventos. Exemplo

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

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

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

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

Aula 15 Interface Gáfica. Disciplina: Programação Estruturada e Orientada a Objetos Prof. Bruno Gomes

Interface Gráficas Parte I. Bruno Crestani Calegaro

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

Interface Gráfica - Swing

MÓDULO 4 SWING Parte 3

Arquivos. Prof. Leonardo Barreto Campos 1

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

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

Programação Orientada a Objetos

Java Standard Edition (JSE)

Paradigmas de Programação React Native

Prof. Responsáveis Wagner Santos C. de Jesus

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

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

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

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

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

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

Cadastro de Cargos, Departamentos e Funcionários

Interface Gráfica. Prof. Marcelo Cohen

8. Interfaces Gráficas de Usuário

Unidade 11: Programando Swing com o NetBeans Prof. Daniel Caetano

Interface Gráfica - Swing

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

Elaborando as Interfaces dos trabalhos das aulas 22, 23 e 24.

PROGRAMAÇÃO ORIENTADA A OBJETOS. Aula 3- Desenvolvendo Interfaces Mais Ricas

Elaborando as Interfaces Aulas 31, 32 e 33

Recursos Complementares (Tabelas e Formulários)

Componentes Parte 03

Aula Prática Criando Views e Controles

Programação para Dispositivos Móveis

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

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

Calc. Interface, Formatação e Cálculos

INF1636 PROGRAMAÇÃO ORIENTADA A OBJETOS

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

Swing Módulo II. Tiago Alves de Oliveira. Tiago Alves de Oliveira 1

Top-Level Containers. Interface com o Usuário. de classes empregadas para implementar a interface com o usuário.

EXCEL. Professor: Leandro Crescencio Colégio Politécnico 1

Pacote Java Swing Parte 1

COM220 Aula 17: Interface Gráfica Containers Swing

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

Orientação a Objetos

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

2017/09/05 19:16 1/6 3 Telas

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

Curso Java Starter. 1

Java Swing: Netbeans

Neste exercício, vamos criar uma Folha de Cálculo, onde vamos utilizar alguns Controlos de Formulários.

Envios. Drag and Drop

Escola Secundária Ferreira Dias Agualva - Sintra. Atividade 20

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

Tabelas. Tabelas. Iniciando a construção... Atributos <table> Tag <table></table> 05/06/2011

5.9 Mídias: Clique no botão de Gerenciador de Mídias, ou acesse o Menu Conteúdo => Gerenciador de Mídias.

Conhecendo a aba Início

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

1) DADOS DA OBRA: Programando em Java 2 Teoria e Aplicações Rui Rossi dos Santos 2004 Axcel Books (

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

Vector Java. Empregado.java

Criação de Aplicações GUI. Java JFC / Swing

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

CENTRO PAULA SOUZA ETEC PADRE JOSÉ NUNES DIAS APLICATIVOS INFORMATIZADOS WORD 2007 PROFESSORA: ALINE PRISCILA SCHMIDT ALUNO:

Interfaces Gráficas (GUIs) em Java usando Swing

PROGRAMAÇÃO PARA INTERNET. Prof.: Jean Carlo Mendes

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

Componentes no Java SE

Curso de Aprendizado Industrial Desenvolvedor WEB

Transcrição:

JAVA Gerenciadores de Layout Tiago Alves de Oliveira 1

Introdução Layout para impor algum tipo de forma em uma interface projetada com o AWT, deve-se usar um conjunto de classes chamadas gerenciadores de layout a linguagem JAVA é implementada em várias plataformas diferentes e existem diferenças sutis no modo como cada uma apresenta itens como botões, barras de rolagem etc. algumas ferramentas de desenvolvimento JAVA permitem usar coordenadas absolutas 2

Introdução Gerenciadores determinam como os componentes serão organizados ao serem inseridos em um container o AWT inclui cinco gerenciadores de layout básicos: FlowLayout (default) BorderLayout CardLayout GridLayout GridBagLayout 3

Introdução Layout de Fluxo a classe FlowLayout representa o mais simples dos gerenciadores de layout essa classe permite que os componentes fluam da esquerda para a direita, na ordem em que eles são inseridos em um container quando não houver mais espaço, uma nova linha de componentes começará imediatamente abaixo da primeira e a ordem da esquerda para a direita continuará 4

Introdução Layout de Fluxo o construtor FlowLayout(int alinhamento, int disthoriz, int distvert) recebe os três argumentos a seguir, em ordem: o alinhamento, que deve ser FlowLayout.LEFT, FlowLayout.CENTER ou FlowLayout.RIGHT a distância horizontal entre os componentes, em pixels a distância vertical, em pixels por default, os componentes de cada linha serão centralizados quando o construtor FlowLayout() for usado sem argumentos 5

Exemplo 6

Introdução Layout de Borda os layouts de borda, que são criados usando-se a classe BorderLayout, dividem um container em cinco seções: NORTH (norte), SOUTH (sul), EAST (leste), WEST (oeste) e CENTER (centro) os componentes dos quatro pontos cardeais ocupam o máximo espaço de que necessitarem, sendo que o centro ocupará o espaço restante 7

Introdução Layout de Borda um layout de borda é criado com os construtores BorderLayout() ou BorderLayout(int disthoriz, int distvert). O primeiro construtor cria um layout de borda sem intervalo entre os componentes. O segundo construtor especifica o intervalo horizontal e o intervalo vertical a maneira de incluir um layout de borda em um container é diferente 8

Exemplo 9

Introdução Resultado 10

Introdução Layout de Carta os layouts de carta diferem dos outros layouts porque eles ocultam alguns componentes é um grupo de containers ou componentes que são exibidos um por vez. Cada container é chamado de carta o modo normal de usar um layout de carta é utilizar um painel para cada carta os componentes são inseridos nos painéis e, os painéis no container que está definido 11

Introdução Layout de Carta um layout de carta é criado a partir da classe CardLayout para inserir cartas no layout deve-se usar o método add(string rotulo, container objeto). O primeiro argumento é uma string que representa o nome da carta. O segundo especificar o container ou componente que é a carta. Se for um container, todos os componentes deverão ter sido incluídos nele, antes que a carta seja inserida 12

Introdução Layout de Carta após ter adicionado uma carta ao container principal de um programa, como a janela JFrame, você pode usar o método show() de seu gerenciador de layout de carta para apresentar uma carta. O método show() recebe dois argumentos: o container em que todas as cartas foram inseridas. Se o container for o frame, você poderá usar a palavra-chave this o nome que foi dado à carta 13

Exemplo 14

Introdução Exemplo 15

Exemplo 2 16

Introdução Resultado 17

Introdução Layout de Grade o gerenciador de layout de grade organiza os componentes em uma grade de linhas e colunas os componentes são incluídos primeiramente na linha superior da grade, começando com a célula mais à esquerda e continuando à direita na grade quando todas as células da linha superior estiverem preenchidas, o próximo componente será inserido na célula mais à esquerda da segunda linha (se houver)... 18

Introdução Layout de Grade os layouts de grade são criados com a classe GridLayout quatro argumentos podem ser enviados para o construtor GridLayout(int linhas, int colunas, int disthoriz, int distvert): o número de linhas na grade, o número de colunas, a distância horizontal e a vertical o distanciamento padrão entre os componentes no layout de grade é de 0 pixels nas direções vertical e horizontal 19

Introdução Layout de Grade no layout de grade, um componente sempre ocupará o espaço inteiro de uma célula, ou seja, os componentes se expandem para preencher o espaço disponível em cada célula Observe que quando a janela é redimensionada os componentes mudam de tamanho 20

Exemplo 21

Resultado 22

Layout de Grade de Conteúdo é uma extensão do gerenciador de layout de grade, diferindo deste com relação ao seguinte: um componente pode ocupar mais de uma célula na grade as proporções entre as diferentes linhas e colunas não precisam ser iguais os componentes dentro das células da grade podem ser organizados de diferentes maneiras 23

Layout de Grade de Conteúdo para criar um layout de grade de conteúdo usa-se a classe GridBagLayout e uma classe auxiliar chamada GridBagConstraints GridBagLayout é o gerenciador de layout e GridBagConstraints é usada para definir as propriedades de cada componente a ser colocado na célula (posicionamento, dimensões, alinhamento...) o relacionamento entre a grade de conteúdo, as restrições e cada componente define o layout global 24

Layout de Grade de Conteúdo em sua forma mais geral, a criação de um layout de grade de conteúdo envolve as seguintes etapas: criar um objeto GridBagLayout e defini-lo como o gerenciador de layout atual criar uma nova instância de GridBagConstraints estabelecer as restrições de um componente informar o gerenciador de layout a respeito do componente e de suas restrições inserir o componente no container 25

projete a grade primeiro lugar para se começar o layout de grade de conteúdo é no papel crie a grade retorne a linguagem JAVA e comece a implementar o layout que acabou de desenhar determine as proporções de linhas e colunas em relação às outras linhas e colunas adicione e organize os componentes faça ajustes Layout de Grade de Conteúdo 26

Layout de Grade de Conteúdo gridx e gridy: são as coordenadas da célula que contém esse componente gridwidth e gridheight: representam o número de células que esse componente abrange weightx e weighty: são usados para definir as proporções das colunas e linhas (podemos pensar em %) 27

Layout de Grade de Conteúdo fill: determina - para componentes que podem ser alongados nas duas direções - em que direção vai haver o alongamento. Pode ter quatro valores: GridBagConstraints.BOTH GridBagConstraints.NONE (default) GridBagConstraints.HORIZONTAL GridBagConstraints.VERTICAL 28

Layout de Grade de Conteúdo anchor: essa restrição se aplica apenas aos componentes que não estão preenchendo a célula inteira, dizendo onde, dentro da célula, deve ser colocado o componente. Os valores possíveis são: GridBagConstraints.NORTH GridBagConstraints.SOUTH GridBagConstraints.NORTHEAST GridBagConstraints.SOUTHWEST GridBagConstraints.EAST GridBagConstraints.WEST GridBagConstraints.SOUTHEAST GridBagConstraints.NORTHWEST GridBagConstraints.CENTER (default) 29

Layout de Grade de Conteúdo ipadx e ipady: são utilizados para determinar o espaçamento entre os componentes em um painel, ou seja especifica o preenchimento interno ao redor do componente; ipadx: adiciona espaço extra nos dois lados do componente ipady: adiciona espaço extra em cima e embaixo do componente 30

Layout de Grade de Conteúdo insets: são usadas para determinar o espaço em torno do próprio painel a classe Insets inclui valores para insets acima, esquerda, abaixo e à direita, que são então usados quando o próprio painel é desenhado as insets determinam o espaço entre as margens de um painel e seus componentes 31

Layout de Grade de Conteúdo Quando você dominar o desenvolvimento de uma interface com o usuário em JAVA, seus programas poderão oferecer algo que a maioria das outras linguagens de programação visuais não consegue: uma interface que funciona em várias plataformas sem modificação 32

Exemplo 33

Exemplo 34

Exemplo 35

Resultado Grade de Conteúdo 36

Mapa das Propriedades anchor = east anchor = west fill = horizontal gridwidth = 3 gridx ipady gridheigth= 1 0 1 2 3 gridy 0 1 2 3 4 jlabel1 jlabel2 jtextfield1 jtextfield2 jbutton gridwidth = 1 gridheigth= 1 gridwidth = 2 gridheigth= 1 jpanel1 anchor = center insets ipadx 37

Resumindo gridx: coluna da célula gridy: linha da célula gridwidth: quant. de células na horizontal gridheigth: quant. de células na vertical weightx: proporção da coluna weighty: proporção da linha fill: alongamento do componente na região anchor: posição da região - células ipady: espaço extra em cima e embaixo ipadx: espaço extra esquerda e direita insets: espaço em torno da região - células 38

Layout Nulo (Null) Posiciona os componentes de acordo com a posição absoluta, ou seja, coloca os componentes no Frame de acordo com as posições que o programador definir pelas coordenadas x e y do Frame ou painel. Não é aconselhável, pode-se perder os benefícios oferecidos pelo Swing em plataformas diferentes. 39

Layout Nulo (Null) 40

Layout Nulo (Null) 41