Interfaces Gráficas: Interações Complexas

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

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

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

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

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

Gerenciamento de Layout

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

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

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

Paradigmas de Programação React Native

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

Orientação a Objetos

Gerenciadores de Layouts

Comandos Extras Formatações no CSS

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

Orientação a Objetos

JMENU, JDESKTOPPANE E JINTERNALFRAME

Interfaces Gráficas com Swing. Professor Leonardo Larback

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

Tabelas. table <table>...</table>

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

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

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

Exercícios Práticos HTML5 + CSS3. Profa. Flávia Pereira de Carvalho

Aula 6: Frames. Pré-requisitos: Os temas das aulas 2 e 5, e a forma como se define cores apresentada na aula 4, serão muito importantes para frames.

Exemplos Práticos HTML5 + CSS3. Profa. Flávia Pereira de Carvalho

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

Os blocos de desenho usados em arquitetura são mantidos em duas bibliotecas independentes:

Cadastro de Cargos, Departamentos e Funcionários

Tiago Alves de Oliveira. Tiago Alves de Oliveira

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

Parte IV Como projetar um layout de página

Síntese da aula anterior

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

Introdução ao AutoCAD Capitulo VI: Adicionar texto. João Manuel R. S. Tavares Joaquim O. Fonseca

UNIVERSIDADE FEDERAL DO PARANÁ SETOR DE CIÊNCIAS EXATAS DEPARTAMENTO DE EXPRESSÃO GRÁFICA Prof. Anderson Roges T. Góes

CFAC: Introdução ao AutoCAD - VI. Capitulo VI: Adicionar texto

Elaborando as Interfaces Aulas 43, 44 e 45

Introdução ao AutoCAD Capitulo VI: Adicionar texto

4 Conceito de Herança

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

Roteiro. Introdução. Uma Introdução à Programação Orientada a Objetos e JAVA usando NetBeans. Objetos. Princípios da Orientação 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

Manual do SymbolEditor. Stephen P. Allewell

Introdução a classes e objetos. Prof. Marcelo Roberto Zorzan

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

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

Para visualizar corretamente configurar a tela para 1024 x 768 pixels. Tabelas

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

Curso Apresentações em EXCEL

Programação para Dispositivos Móveis

Programação Orientada a Objectos - P. Prata, P. Fazendeiro. Hierarquia de classes e mecanismo de ligação

CONCEITOS BÁSICOS DE ORIENTAÇÃO A OBJETOS PROF. ME. HÉLIO ESPERIDIÃO

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

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

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

é usado para fechar a janela do são telas que podem conter textos, imagens, vídeos, sons e efeitos visuais.

UNIVERSIDADE FEDERAL DE MATO GROSSO DO SUL SISTEMAS DE INFORMAÇÃO - CÂMPUS DE COXIM FUNDAMENTOS EM ORIENTAÇÃO A OBJETOS

Recursos Complementares (Tabelas e Formulários)

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

Manual de placas - OBRAS. Departamento Nacional de Infraestrutura de Transportes

INTRODUÇÃO AO DESENVOLVIMENTO WEB

Classes e Objetos. Sintaxe de classe em Java

Excel Prof. André Aparecido da Silva Disponível em:

Usar minigráficos para mostrar tendências de dados

DIV 1 DIV 2 DIV 3 DIV 4 DIV 5

JAVA APLICAÇÕES GRÁFICAS Propriedades Utilizadas: insira as propriedades escolhidas aqui FACULDADE DE TECNOLOGIA SENAC PELOTAS

Introdução. Atributos em Java. Atributos. Acesso à atributos em Java. Atributo versus variável. Atributos, métodos e encapsulamento.

Aula 03 - Trabalhando com listas de dados I. Aula 03 - Trabalhando com listas de dados I. Sumário. Introdução

Obedecendo essa estrutura definida para a linguagem, podemos dividir a sua definição em duas partes: os elementos da linguagem e as suas regras.

Tecnologias da Informação e Comunicação

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

Interface Gráfica - Swing

Excel INTERMEDIÁRIO. Prof. Cassiano Isler Turma 3

JAVA 3D. PSI5789 Síntese de Imagens Professor: Márcio Lobo Netto Aluna: Alice Shimada Bacic. 1 Java 3D API

Padrão para Especificação de Requisitos de Produto de Multimídia

Programação Java (nível intermediário) 4. Polimorfismo

Nome do Aluno: Matrícula: Turma: Data: 08/04/2013

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

MUSEU DE CIÊNCIAS DA UFG

Informática. LibreOffice Impress. Professor Márcio Hunecke.

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

Capturando Entrada de Dados Através do Teclado

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

Gerenciadores de Layout Parte 1

Aula 2 Even e to t s d o M ouse

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

Interface gráfica em Java: Swing e SWT

Introdução ao Pro/ENGINEER

Barra de Dados. Para aplicar o efeito de Barra de Dados, o primeiro passo é selecionar as células que deverão conter as barras de dados.

Programação Orientada a Objetos. Vagner Luz do Carmo - Vluzrmos

Modelos de Cálculo. Modelo Estrutural. Características dos Modelos. Modelo simplificado

Gráficos Excel Dados da planilha. Gráfico criado a partir de dados de planilha

LEIC-T LERC MEIC-T 2011/2012 1º Semestre Programação com Objetos 2012/01/07 11h00m 3/10

use um cast para byte, como, por exemplo, gl.glcolor3ub((byte)0, (byte)0, (byte)255);

INF 1620 Estruturas de Dados Semestre Segundo Trabalho: Jogo de Caça-Palavras

Transcrição:

Interfaces Gráficas: 21 Interações Complexas 21.2 Gerenciando leiautes 21.2.6 GridBagLayout Este gerente de leiaute dispõe os componentes sob seu controle em um reticulado, permitindo a especificação da quantidade de células que cada componente deve ocupar. Desse modo, podemos construir reticulados do tipo mostrado na Figura 21.1 (A). A Figura 21.1 (B) mostra os nove componentes da figura à esquerda ocupando as células de um reticulado com 5 3 células. Os componentes comp-1, comp-2 e comp-3 ocupam uma célula cada um. O componente comp-4 ocupa duas células na segunda linha e comp-6 ocupa duas células na terceira linha. O componente comp-5 ocupa duas células na terceira coluna, enquanto comp-7 e comp-8 ocupam uma célula cada um. Já o componente comp-9 ocupa quatro células no canto inferior direito do reticulado. O gerente GridBagLayout associa a cada componente um conjunto de restrições. Estas restrições são implementadas por um objeto da classe GridBagConstraints e definem, por exemplo, quantas células o componente ocupa e o seu alinhamento em relação às células ocupadas. O uso do gerente GridBagLayout envolve os seguintes passos: 1. Criar um gerente de leiaute, gl, da classe GridBagLayout. 2. Criar um objeto, rst, da classe GridBagConstraints. 3. Criar o componente c que se quer adicionar. 4. Definir através do objeto rst as restrições que c deve obedecer.

2 Interfaces Gráficas Figura 21.1. Exemplo de reticulado de um GridBagLayout comp 1 comp 2 comp 3 comp 1 comp 2 comp 3 comp 4 comp 5 comp 4 comp 5 comp 6 comp 6 comp 7 comp 9 comp 7 comp 9 comp 8 comp 8 (A) (B) 5. Associar através do método setconstraints (executado pelo gerente de leiaute gl) o componente c às suas restrições rst. 6. Adicionar o componente c. 7. Repetir os passos 2-6 para cada novo componente. As restrições de cada componente são definidas através dos atributos do objeto usado para especificá-las. Caso um componente seja adicionado sem que um objeto da classe GridBagConstraints esteja associado a ele, o gerente de leiaute adota um valor padrão para cada restrição. Os atributos e constantes mais comuns são: gridwidth. Define o número de células horizontais (colunas) que o componente ocupará. A constante REMAINDER faz com que o componente ocupe todas as células restantes na linha, finalizando a linha corrente. O valor padrão é 1. gridheight. Define o número de células verticais (linhas) que o componente ocupará. A constante REMAINDER faz com que o componente ocupe todas as células restantes na coluna corrente. o valor padrão é 1. gridx. Define a coluna em que o componente será colocado. A constante RELATIVE especifica que o componente será colocado imediatamente após o último componente incluído, na mesma linha ou na primeira célula da próxima linha, se o último componente tiver finalizado sua linha corrente. Este é o comportamento padrão. gridy. Define a linha em que o componente será colocado. A constante RELATIVE especifica que o componente será colocado imediatamente abaixo do último componente incluído. Este é o comportamento padrão.

21.2 Gerenciando leiautes 3 O tamanho das células é calculado de modo a comportar o componente nelas contido. Ao final, a largura das colunas e a altura das linhas são ajustadas: a largura de uma coluna é dada pela largura da maior célula que a coluna contém; o mesmo ocorre para a altura de uma linha. Assim, é possível termos componentes cujo tamanho é menor que a área (linhas e colunas) a eles reservada. O posicionamento de cada componente em relação ao conjunto de células que o contém é controlado pelos seguintes atributos: fill. Define como o componente deve ser redimensionado para ocupar a área a ele reservada. Pode assumir uma das seguintes constantes de GridBagConstraints: VERTICAL. Faz com que o componente ocupe verticalmente toda a área a ele reservada. HORIZONTAL. Faz com que o componente ocupe horizontalmente toda a área a ele reservada. BOTH. Faz com que o componente ocupe toda a área a ele reservada. NONE. Não redimensiona o componente. Este é o valor padrão. anchor. Define a posição do componente em relação a área a ele reservada. Pode assumir uma das seguintes constantes de GridBagConstraints: NORTH. Posiciona o componente no topo da área. SOUTH. Posiciona o componente na base da área. EAST. O componente é alinhado à direita. WEST. O componente é alinhado à esquerda. CENTER. O componente é posicionado no centro da área. Este é o valor padrão. Podemos também ter o aparecimento de espaços extras (horizontais ou verticais) em função do redimensionamento da janela na qual o reticulado está inserido. Os espaços extras são distribuídos proporcionalmente aos pesos de cada área. weightx. Define o peso horizontal da área associada ao componente. O peso padrão é 0, indicando que a área não recebe espaços extras. weighty. Define o peso vertical da área associada ao componente. O peso padrão é 0, indicando que a área não recebe espaços extras. Exemplo 21.1. Suponha que uma linha contenha três áreas com pesos horizontais 1.0, 3.0 e 2.0. Se a janela que contém o reticulado é redimensionada provocando o aparecimento de 120 pixels horizontais extras, eles serão distribuídos do seguinte modo: 20 pixels na primeira, 60 na segunda e 40 na terceira área.

4 Interfaces Gráficas Os objetos da classe GridBagConstraints também possuem os atributos insets, ipadx e ipady que permitem a especificação de espaços entre componentes e células. O uso desses atributos deve ser pesquisado na documentação da classe. Exemplo 21.2. O programa a seguir cria uma janela com nove rótulos dispostos como indicados na Figura 21.1 (A). Os rótulos criados nesse exemplo possuem uma borda para melhor visualização do comportamento do gerente de leiaute. A borda é criada com o método setborder (linha 8) tendo como argumento um objeto da classe LineBorder (criado na linha 7). 1 import javax.swing.*; 2 import java.awt.*; 3 import javax.swing.border.*; 4 class C21ExemploN1 { 5 static void adicionacomp(string rotulo, Container conteudo, 6 GridBagLayout gl, GridBagConstraints rst) { 7 LineBorder borda = new LineBorder(Color.black); 8 JLabel comp = new JLabel(rotulo); comp.setborder(borda); 9 gl.setconstraints(comp,rst); 10 conteudo.add(comp); 11 } 12 public static void main(string[] arg) { 13 JFrame janela = new JFrame("Exemplo Gerente GridBagLayout"); 14 Container conteudo = janela.getcontentpane(); 15 GridBagLayout gl = new GridBagLayout(); 16 conteudo.setlayout(gl); 17 GridBagConstraints rst = new GridBagConstraints(); 18 19 adicionacomp("comp-1", conteudo, gl, rst); 20 adicionacomp("comp-2", conteudo, gl, rst); 21 rst.gridwidth = GridBagConstraints.REMAINDER; 22 adicionacomp("comp-3", conteudo, gl, rst); 23 rst.fill = GridBagConstraints.BOTH; 24 rst.gridwidth=2; rst.weighty=1.0; 25 adicionacomp("comp-4", conteudo, gl, rst); 26 rst.gridwidth= 1; rst.gridheight = 2; 27 adicionacomp("comp-5", conteudo, gl, rst); 28 rst.gridx = 0; rst.gridwidth = 2; rst.gridheight = 1; 29 adicionacomp("comp-6", conteudo, gl, rst); 30 rst.gridy=3; rst.gridwidth = 1; 31 adicionacomp("comp-7", conteudo, gl, rst); 32 rst.gridy = 4; 33 adicionacomp("comp-8", conteudo, gl, rst); 34 rst.gridx = GridBagConstraints.RELATIVE; rst.gridy = 3; 35 rst.gridwidth = GridBagConstraints.REMAINDER; 36 rst.gridheight = GridBagConstraints.REMAINDER;

21.2 Gerenciando leiautes 5 37 adicionacomp("comp-9", conteudo, gl, rst); 38 39 janela.setdefaultcloseoperation 40 (WindowConstants.EXIT_ON_CLOSE); 41 janela.pack(); 42 janela.setvisible(true); 43 } 44 } O método adicionacomp (linhas 5 a 11) cria um rótulo comp (linha 8) e o adiciona ao contêiner conteudo (linha 10). As restrições que o rótulo deve obedecer são especificadas pelo objeto rst, através do método setconstraints, na linha 9. O método principal, após criar a janela (linha 13), definir o gerente de leiaute (linhas 15-16) e criar o objeto usado para especificar as restrições (linha 17), realiza sucessivas chamadas ao método adicionacomp, em cada uma passa como argumentos o rótulo do componente que será criado, o contêiner onde o componente será adicionado, o gerente de leiaute e o objeto especificando as restrições. O programa modifica os atributos do objeto rst para especificar as restrições que cada componente deve obedecer. Na linha 24, por exemplo, o atributo gridwidth é usado para especificar que o componente comp-4 deve ocupar 2 células horizontais (a quantidade de células verticais continua com o valor padrão definido para gridheight). Também nesta linha definimos que este componente tem peso vertical (weighty) igual a 1. O método pack (linha 41) faz com que o tamanho da janela seja definido em função do tamanho dos seus componentes, neste caso o reticulado controlado pelo gerente GridBagLayout. A janela torna-se visível pelo comando da linha 42.