Posicionamento dos Componentes

Documentos relacionados
Elaborando as Interfaces Aulas 31, 32 e 33

Introdução. Coleção HashMap Classe Java. Interesse

Paradigmas da Programação PPROG. Tipos Enumerados. Nelson Freire (ISEP DEI-PPROG 2013/14) 1/20

. 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. Aula 1- Interfaces Gráficas com Swing

Paradigmas da Programação PPROG. Netbeans. Projetos Ficheiro JAR Executável Atalhos Templates. Nelson Freire (ISEP DEI-PPROG 2014/15) 1/22

JTextArea JMenuBar JTable JDesktopPane e JInternalFrame

Linguagem de programação 2 GUI

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

Gerenciadores de Layout

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

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

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

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

Paradigmas da Programação PPROG. Linguagem JAVA. Contentores de Objetos

Orientação a Objetos AULA 09

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

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

Paradigmas da Programação PPROG. Linguagem JAVA. Interfaces. (Livro Big Java, Late Objects Capítulo 9) Nelson Freire (ISEP DEI-PPROG 2013/14) 1/33

JMENU, JDESKTOPPANE E JINTERNALFRAME

Elaborando as Interfaces Aulas 43, 44 e 45

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

Universidade Federal de Uberlândia Faculdade de Computação Programação Orientada a Objetos II Prof. Fabiano Dorça. Padrão Observer (Observador)

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

PLATAFORMA SIGA RIO DAS VELHAS MANUAL DO CÓDIGO FONTE

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

Algoritmos e Programação II. Coleções. Coleções. Baseado no material do Prof. Julio

Interface Gráfica - Swing

Iteradores. Iteradores. Isabel Harb Manssour. Roteiro. Coleções

Interfaces Gráficas: Interações Complexas

Programação Orientada por Objetos

Tecnologias da Informação e Comunicação 9º Ano Escola Básica Miradouro de Alfazina

REST. Representational State Transfer. É um estilo arquitetural usado por muitas aplicações Web para estender as suas funcionalidades.

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

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

JAVA. Gerenciadores de Layout. Tiago Alves de Oliveira

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

MODEL-VIEW-CONTROLER. Prof. Fellipe Aleixo

API e Coleções Java. Sérgio Luiz Ruivace Cerqueira

Modificadores de Acesso JAVA

Computação II - Java - Prova 1 Prof. Adriano Joaquim de Oliveira Cruz /05/13. Questão: Total Pontos: Gráu:

2.8 Inserindo Objetos. Campos

JFC/Swing. LPGII - Java Interface Gráfica JFC/Swing. Introdução JFC / Swing. Introdução JFC / Swing

p Pacotes, a grosso modo, são apenas pastas ou diretórios do sistema operacional onde ficam armazenados os arquivos fonte de Java.

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

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

Classes e Objetos. Sintaxe de classe em Java

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

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

Linguagem de programação Programação Orientada a objetos

Bem-vindo ao tópico sobre valores definidos pelo usuário.

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

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

Componentes Parte 03

Interfaces e Classes Abstratas

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

Programação Java. Marco Fagundes. - Herança, Classes Abstratas e Interfaces Marco Fagundes -

Android e Bancos de Dados

Interfaces. Universidade Católica de Pernambuco Ciência da Computação. Prof. Márcio Bueno.

POO29004 Programação Orientada a Objetos

Laboratório de programação 2º Trabalho

Algoritmia e Programação APROG. Tecnologia JAVA. IDE Netbeans. Nelson Freire (ISEP DEI-APROG 2012/13) 1/31

Palavras Reservadas da Linguagem Java

JavaFX Conhecendo outros componentes. Professor Vicente Paulo de Camargo

8. Interfaces Gráficas de Usuário

Classe Abstrata e Interface

Computação II Orientação a Objetos

Aula 5 POO 1 Encapsulamento. Profa. Elaine Faria UFU

ALGORITMOS. Professor: Diego Oliveira. Aula 06 - Tipos Primitivos de Dados

Heaps. Estrutura de Dados. Universidade Federal de Juiz de Fora Departamento de Ciência da Computação 1 / 35

Transcrição:

Janela JTabbedPane Centro do ContentPane Posicionamento dos Componentes JMenuBar JFrame ContentPane BorderLayout PainelInicio é JPanel BorderLayout PainelListaTelefonica é JPanel BorderLayout Nelson Freire (ISEP DEI-PPROG 2014/15) 1/24

Janela JMenu JMenu Sistema de Menus JMenuBar JMenuItem JSeparator Mnemónica Acelerador Nelson Freire (ISEP DEI-PPROG 2014/15) 2/24

Tabelas Interesse de Objeto JTable 1/8 Mostrar tabela de dados Contém células organizadas em linhas e colunas Colunas têm cabeçalhos com título Exemplo Mostrada dentro de um scroll pane (opcional) Para deslocar na vertical e na horizontal Objeto de JScrollPane Opcionalmente Permite ao utilizador editar os dados Não contém dados Simplesmente visualiza os dados // dados guardados noutro objeto do tipo TableModel. Nelson Freire (ISEP DEI-PPROG 2014/15) 3/24

Tabelas Tabela Usa a arquitetura Model-View-Controller Interesse Separar na tabela Dados // Model Vista // View Com a finalidade Arquitectura MVC (Model-View-Controller) 2/8 Poder usar diferentes estruturas de dados Para armazenar os dados Tais como: Array, ArrayList, etc. Implementação de Tabela Requer dois objetos do tipo: JTable // implementa a Vista da Tabela TableModel // implementa o Modelo da Tabela TableModel JTable Nelson Freire (ISEP DEI-PPROG 2014/15) 4/24

Tabelas Objeto JTable 3/8 Responsável Apenas pela vista da tabela Sabe Muito pouco sobre a forma como dados estão armazenados. P. ex.: Não fornece métodos para inserir e remover dados na tabela Usa Objeto modelo da tabela (TableModel) para gerir os dados atuais da tabela. Obter Modelo da Tabela Método getmodel() Nelson Freire (ISEP DEI-PPROG 2014/15) 5/24

Tabelas Objeto TableModel 4/8 Responsável Apenas pelos dados da tabela Gere Dados da tabela a pedido do objeto JTable Fornece métodos Para inserir, atualizar e remover dados da tabela TableModel É uma interface Objeto TableModel É instância de classe que implemente TableModel Nelson Freire (ISEP DEI-PPROG 2014/15) 6/24

Tabelas Objeto TableModel 5/8 Tipos de Classe Nativa // fornecida pelo Java Própria // programada por nós Classe Nativa DefaultTableModel Classe Própria Usada por omissão pela JTable Guarda dados num objeto da classe Vector Fácil de usar mas tem restrições Exemplos: Células apenas editáveis Dados tratados todos como Strings Ex: Boolean não visualizado numa check box Obriga colocação de todos os dados da tabela num array ou Vector Pode ser desadequado para algum dado Alternativa Criar classe própria Permite implementar os nossos modelos da tabela Herdada da classe AbstractTableModel Classe Abstrata Implementa a interface TableModel Nelson Freire (ISEP DEI-PPROG 2014/15) 7/24

Tabelas AbstractTableModel 6/8 Modificação dos Dados no Modelo da Tabela Deve ser comunicada ao objeto JTable Classe Própria Deve disparar um evento apropriado Invocando um dos seguintes métodos Método public void firetablecellupdated(int row, int column) public void firetablerowsupdated(int firstrow, int lastrow) public void firetabledatachanged() public void firetablerowsinserted(int firstrow, int lastrow) public void firetablerowsdeleted(int firstrow, int lastrow) public void firetablestructurechanged() Modificação de Dados Atualização da célula especificada. Atualização das linhas especificadas. Atualização de toda a tabela (só dados). Inseridas as novas linhas especificadas. Linhas especificadas eliminadas. Invalidar toda a tabela, ambos os dados e estrutura. Nelson Freire (ISEP DEI-PPROG 2014/15) 8/24

Tabelas Eventos do Modelo da Tabela 7/8 Modelo da Tabela Gera eventos Quando os dados/estrutura da tabela são modificados Eventos Tipo TableModelEvent Eventos enviados a objetos trata evento Tipo TableModelListener Registados no modelo da tabela Objeto TableModel Evento TableModel Objeto TableModelListener Objeto TableModelListener Objeto TableModelListener Tipo TableModelListener Definido por interface Declaração public interface TableModelListener extends java.util.eventlistener{ public void tablechanged(tablemodelevent e); // método de evento } Objeto Trata Evento TableModel Instância de classe que implementa a interface TableModelListener Implementa o método tablechanged Nelson Freire (ISEP DEI-PPROG 2014/15) 9/24

Tabelas Eventos do Modelo da Tabela 8/8 Método tablechanged public interface TableModelListener extends java.util.eventlistener { public void tablechanged(tablemodelevent e); // método de evento } Parâmetro TableModelEvent e permite conhecer: Tipo de modificação Inserção, Eliminação ou Atualização public int gettype() Retorna: TableModelEvent.INSERT,.DELETE ou.update Células da tabela modificadas Linhas public int getfirstrow() Retorno TableModelEvent.HEADER_ROW Modificação de nomes, tipos e ordem das colunas public int getlastrow() Colunas public int getcolumn() Retorno TableModelEvent.ALLCOLUMNS Modificadas todas as colunas das linhas indicadas Nelson Freire (ISEP DEI-PPROG 2014/15) 10/24

Tabbed Pane Introdução 1/6 Componente Gráfico Objeto da classe JTabbedPane Interesse Permitir a múltiplos painéis partilharem mesma área da GUI Exemplo Tabbed Pane permite partilha de área a: PainelListaTelefonica // adicionado ao separador (tab) Lista Telefónica PainelInicio // adicionado ao separador Início Nelson Freire (ISEP DEI-PPROG 2014/15) 11/24

Tabbed Pane Classe JTabbedPane 2/6 Package javax.swing Declaração public class JTabbedPane extends JComponent implements Serializable, Accessible, SwingConstants {... } Object Component Container JComponent JTabbedPane Nelson Freire (ISEP DEI-PPROG 2014/15) 12/24

Tabbed Pane Construtores 3/6 Declaração public JTabbedPane( ) Exemplos: JTabbedPane tabpane = new JTabbedPane(); JTabbedPane tabpanelista = new JTabbedPane(); public JTabbedPane( int tabplacement ) Exemplo: JTabbedPane tabpanelista = new JTabbedPane( JTabbedPane.LEFT ); public JTabbedPane( int tabplacement, int tablayoutpolicy ) Exemplo: JTabbedPane tabpanelista = new JTabbedPane( JTabbedPane.LEFT, JTabbedPane. WRAP_TAB_LAYOUT); Funcionalidade Constrói um tabbed pane vazio com o posicionamento dos separadores no topo. Constrói um tabbed pane vazio com o posicionamento dos separadores especificado; Opções tabplacement: JTabbedPane.TOP JTabbedPane.BOTTOM JTabbedPane.LEFT JTabbedPane.RIGHT Constrói um tabbed pane vazio com o posicionamento dos separadores especificado, com espaço e sem espaço, para visualizar todos (tablayoutpolicy) ; Opções tablayoutpolicy: JTabbedPane. WRAP_TAB_LAYOUT JTabbedPane. SCROLL_TAB_LAYOUT Nelson Freire (ISEP DEI-PPROG 2014/15) 13/24

Tabbed Pane Métodos 4/6 Herdados Component Container JComponent Próprios (1/2) Mais usados Declaração public void addtab( String title, Component component ) Exemplo: JTabbedPane tabpane = new JTabbedPane(); tabpane.addtab( "Início", new PainelInicio() ); public void addtab( String title, Icon icon, Component component, String tip ) Funcionalidade Adiciona ao tabbed pane um separador, sem imagem, com o título e o componente, especificados; Este componente é visualizado quando o título do separador é clicado. Adiciona ao tabbed pane um separador com o título, imagem, componente e dica, especificados. Nelson Freire (ISEP DEI-PPROG 2014/15) 14/24

Tabbed Pane Próprios (2/2) Métodos 5/6 Declaração public void inserttab( String title, Icon icon, Component component, String tip, int index ) public void removetabat( int index ) public void removeall() public void setselectedindex( int index ) public void setselectedcomponent( Component c ) public void setenabledat( int index, boolean enabled ) Funcionalidade Adiciona ao tabbed pane um separador com o título, imagem, componente e dica, especificados, na posição indicada. Remove do tabbed pane o separador na posição indicada. Remove do tabbed pane todos os separadores e respectivos componentes. Seleciona o separador do tabbed pane indicado. Seleciona o separador do tabbed pane com o componente especificado. Inibe ou desinibe o separador indicado. Nelson Freire (ISEP DEI-PPROG 2014/15) 15/24

Tabbed Pane Bibliografia 6/6 https://docs.oracle.com/javase/tutorial/uiswing/components/tabbedpane.html Nelson Freire (ISEP DEI-PPROG 2014/15) 16/24

JAR JAR de Projeto Netbeans com Imagens 1/3 1. Adicionar uma Package ao Projeto Para guardar as imagens Exemplo Package imagem Criada no separador Files Comando New > Java Package Nelson Freire (ISEP DEI-PPROG 2014/15) 17/24

JAR JAR de Projeto Netbeans com Imagens 2/3 2. Adicionar Package das Imagens Ao Source Package Folders Nelson Freire (ISEP DEI-PPROG 2014/15) 18/24

Imagens JAR de Projeto Netbeans com Imagens 3/3 3. Construir Objeto ImageIcon Para representar a imagem Icon ic = new ImageIcon( getclass().getresource("/lista telefonica.jpg") ); 4. Compilar o Projeto Comando Clean and Build JAR criado na pasta dist Nelson Freire (ISEP DEI-PPROG 2014/15) 19/24

JPanel Exemplo Imagem Ajustada à Dimensão do Painel 1/3 Requer Reescrever o método paintcomponent Método paintcomponent Chamado automaticamente... quando: Painel é apresentado pela 1ª vez Sempre que a janela é Redimensionada Visualizada após estar escondida Nelson Freire (ISEP DEI-PPROG 2014/15) 20/24

JPanel Imagem Ajustada à Dimensão do Painel 2/3 public class PainelInicio extends JPanel { } // Objeto que representa a imagem a desenhar no painel private static final ImageIcon icon = new ImageIcon( PainelInicio.class.getResource("/lista telefonica.jpg")); // Construtor do painel public PainelInicio() { super(); } @Override public void paintcomponent(graphics g) { // Objeto Graphics g para desenhar a imagem no painel } // Desenhar no painel, incluindo o preenchimento, por ser opaco super.paintcomponent(g); // Obter dimensão atualizada do painel Dimension dimensaopainel = this.getsize(); double largura = dimensaopainel.getwidth(); double altura = dimensaopainel.getheight(); // Obter imagem com tamanho ajustado à dimensão do painel Image i2 = icon.getimage().getscaledinstance( (int) largura, (int)altura, Image.SCALE_SMOOTH); // Obter imagem para ser desenhada pelo método seguinte Image i3 = new ImageIcon(i2).getImage(); // Desenhar a imagem no painel (this), desde o seu ponto (0,0) g.drawimage(i3, 0, 0, this); Algoritmo para redimensionar imagem. Outras Opções: SCALE_FAST... Escolha entre rapidez e qualidade da imagem Nelson Freire (ISEP DEI-PPROG 2014/15) 21/24

JPanel Imagem Ajustada à Dimensão do Painel Referência http://docs.oracle.com/javase/tutorial/uiswing/painting/closer.html 3/3 Nelson Freire (ISEP DEI-PPROG 2014/15) 22/24

Look And Feel Package javax.swing Classe UIManager Declaração public class UIManager implements Serializable { } Interesse Gere: Estilo (Look and Feel) atual dos componentes gráficos Conjunto de estilos disponíveis PropertyChangeListeners que são notificados quando o estilo é alterado Valores por omissão do estilo Disponibiliza métodos para obter valores por omissão Nelson Freire (ISEP DEI-PPROG 2014/15) 23/24

Eventos Interface WindowListener Nelson Freire (ISEP DEI-PPROG 2014/15) 24/24