Baixe o app para aproveitar ainda mais
Prévia do material em texto
Aula 3- Desenvolvendo interfaces mais ricas Objetivo desta Aula: Nesta aula, você irá: 1 - Controlar aspectos visuais. 2 - Construir Menus para usuários. 3 - Manipular Caixas de informações e diálogos. 4 - Apresentar componentes de trabalho, como campos e botões. 5 - Apresentar campos de interfaces como listas e caixas de opção. Aspectos Visuais em Java Ao desenvolver uma Interface, é fundamental interferir em seus componentes visuais. Podemos gerenciar os seguintes componentes: Fontes A classe Font (java.awt.Font) representa as fontes que são utilizadas para apresentar os textos nas Interfaces gráficas. Em Java, as fontes precisam ser criadas para serem utilizadas. Resumo dos construtores: Font (String nome, int estilo, int tamanho); Cria uma fonte específica (nome), com o estilo e o tamanho em pontos. Cursores A classe Cursor (java.lang.Object) encapsula a representação do bitmap do cursor do mouse.Para alterar o comportamento dos cursores, basta definir o novo tipo de cursor com: this.setCursor(Cursor.getPredefinedCursor(Cursor.MOVE_CURSOR)); Neste caso, estamos definindo o cursor para cursor de movimento. Podemos definir os cursores com eventos como clique do botão, passar com o mouse por cima de algum componente, passar o mouse em uma área pré-definida ou outro evento que queira. Bordas Através do método setBorder de JComponent, o pacote Swing permite a criação de bordas envolvendo os componentes. Quando falamos em qualidade na Interface, não podemos deixar de pensar no cursor do mouse. Tipos de Bordas: Simple Define as bordas simples, que podem ser um relevo, apenas uma linha, encravada, sem borda. Matte Você define quantos pixels serão utilizados e qual figura será utiliza. Titled Coloca uma borda com um texto. Compound Podemos compor duas bordas com este estilo. Cores Podemos definir e manipular as cores em Java através da classe Color. Esta classe encapsula as cores do sistema RGB (Red, Green and Blue). O Sistema RGB pode ser entendido como objetos que emitem luz, como monitores, televisão ou o sol, sobrepondo ou somando os comprimentos de onda. R G B Simplificando, a composição dos três canhões de luz, um com vermelho, outro com verde e o último com azul produz todo o espetro de cor visível. É função do programador definir as intensidades de cada canhão, para determinar a cor desejada. A escala de cor varia de 0 até 255, sendo que 0 o canhão está desligado e com 255 ligado no máximo. Quando temos os três canhões desligados, teremos o preto, que indica ausência de luz, enquanto que quando ligamos todos os canhões no máximo, teremos o branco. Dica: Como curiosidade, sempre que ligarmos os três canhões com a mesma intensidade, teremos um tom de cinza. Cores pré-definidas: White Black Blue Cyan DarkGray Gray Green LightGray Magenta Orange Pink Red Yellow Cores de Fontes Para definirmos as cores das fontes dos componentes, basta definir a propriedade Foreground com a cor desejada. É possível utilizar cores pré definidas ou definir na hora. Ex.: jLabel6.setForeground(Color.blue); Color vermelhoEscuro = new Color(235,50,50); jLabel5.setForeground(vermelhoEscuro); Cores de Fundo Para definirmos as cores de fundo, utilizamos a propriedade Background. O detalhe é que esta propriedade só funciona para componentes que sejam opacos. Então, é necessário definir a opacidade como verdadeiro. Ex.: jLabel7.setOpaque(true); jLabel7.setBackground(Color.green); Utilizamos o exemplo das bordas para mostrar as características das cores. .... jLabel7.setForeground(Color.red); jLabel6.setForeground(Color.blue); jLabel7.setOpaque(true); jLabel7.setBackground(Color.green); Color vermelhoEscuro = new Color(235,50,50); jLabel5.setForeground(vermelhoEscuro); .... Menus Os menus talvez sejam os componentes que mais aparecem nas ferramentas computacionais. Geralmente eles são encontrados no topo da janela da aplicação, de onde dão suporte à organização e agrupamento de funções afins em um mesmo contexto visual, o que facilita muito a localização e entendimento por parte do usuário, já que a estrutura de cada menu está delineada pelas características dos itens. Os menus, que são instanciados a partir da classe JMenu, são anexados a uma barra de menus com o método add(JMenu) de JMenuBar, sendo que instâncias dessa última classe comportam-se como containers para menus. A classe JMenuBar fornece os métodos necessários ao gerenciamento da barra onde os menus são anexados. A ordenação dos mesmos depende da ordem em que foram adicionados, sendo que são “empilhados” horizontalmente da esquerda para a direita. Evidentemente, só pode-se anexar menus a janelas da classe JApplet, JDialog, JFrame e JInternalFrame, e faze-se isso usando-se o método setJMenuBar(JMenuBar). A classe JMenuItem capacita a criação de itens de menu que, por sua vez, devem ser anexados a um menu. Pode-se usar um item de menu para executar alguma ação ou para gerir o acionamento de um submenu, o qual fornece mais itens que estão relacionados por alguma característica comum. Passo a passo para montagem de um menu em barras em Java: 1. Instancie um JMenuBar. Ele é o responsável pela estrutura do menu. 2. Adicione tantos JMenu’s quantos forem necessários para as opções. Dentro de cada JMenu, coloque o JMenuItem, que é o responsável pela opção a ser escolhida. Código: jMenuBar1.setName("jMenuBar1"); // NOI18N jMenu1.setText("Arquivo")); // Aba Arquivo da barra de opções jMenu1.setName("jMenu1"); // NOI18N jMenuItem1.setText("Abrir")); // Opção Abrir do menu jMenuItem1.setName("jMenuItem1"); // NOI18N jMenu1.add(jMenuItem1); jMenuItem2.setText("Editar")); // Opção Editar do menu jMenuItem2.setName("jMenuItem2"); // NOI18N jMenu1.add(jMenuItem2); jMenuItem3.setText("Salvar")); // Opção Ajuda do menu jMenuItem3.setName("jMenuItem3"); // NOI18N jMenu1.add(jMenuItem3); jMenuBar1.add(jMenu1); //Inclui o menu Arquivoo na barra de menus jMenu2.setText("Ajuda")); // Aba Ajuda da barra de opções jMenu2.setName("jMenu2"); // NOI18N jMenuItem4.setText("Ajuda")); // Opção Ajuda do menu jMenuItem4.setName("jMenuItem4"); // NOI18N jMenu2.add(jMenuItem4); jMenuItem6.setText("Pesquisa")); // Opção Pesquisa do menu jMenuItem6.setName("jMenuItem6"); // NOI18N jMenu2.add(jMenuItem6); jMenuItem5.setText("Sobre")); // Opção Sobre do menu jMenuItem5.setName("jMenuItem5"); // NOI18N jMenu2.add(jMenuItem5); jMenuBar1.add(jMenu2); //Inclui o menu Ajuda na barra de menus jMenu3.setText("Sair")); // Aba Sair da barra de opções jMenu3.setName("jMenu3"); // NOI18N jMenu3.add(jMenuItem7); jMenuBar1.add(jMenu3); //Inclui o menu Sair na barra de menus Listas e Caixas de opção As listas permitem apresentar um vetor de Strings na tela. Podemos usar dois objetos implementados, um na AWT – List e outro no Swing – Jlist. Ambos têm funcionalidades muito semelhantes. Na classe List da AWT, podemos inserir e retirar elementos diretamente, enquanto que na Jlist, teremos que fazer atravésde um modelo. Na próxima aula veremos detalhadamente este processo, quando analisaremos os eventos envolvidos. Leitura do Capítulo 11 do livro Java como programar, 6ª Edição, de H. Deitel e P. Deitel, Editora Pearson Education, 2005. Resolução dos exercícios de 11.04 até 11.10 do capítulo 11 do livro Java Como Programar.
Compartilhar