Buscar

Interfaces Gráficas em Java

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 21 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 6, do total de 21 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 9, do total de 21 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Prévia do material em texto

*
*
Linguagem de Programação
EDUARDO LUIZ PARETO
Rio de Janeiro, 19 de setembro de 2011
*
Aula 7
Interfaces e Polimorfismo
Objetivos
- Explorar o pacote Swing para desenvolver Interfaces em Java
- Criar e manipular Menus 
- Utilizar interfaces gráficas interagindo com objetos e classes previamente definidos;
*
*
As Interfaces Gráficas em Java
O Java fornece uma infinidade de funcionalidades para prover comunicação humano-computado, ou melhor, para desenvolver interfaces. São fornecidas duas bibliotecas para desenvolver um GUI. Elas são:
java.awt : Abstract Window Toolkit (classes básicas);
javax.swing : Swing Componets – Fornece um conjunto de components alternativos, mais funcionais que os conjuntos fornecidos pela java.awt. 
Estas bibliotecas são fornecidas pelo JFC Graphical User Interface
*
*
*
Hierarquia das classes
*
*
*
Componentes Atômicos
São elementos ou componentes que não permitem conter outros elementos. 
Podemos citar, dentre outros:
botões, 
labels, 
textFields, 
sliders, 
check boxes, 
scrollbars, 
etc.
*
*
*
JLabel
São rótulos estáticos que geralmente apresentam funcionalidades de outros componentes GUI, como por exemplo, campos de texto, ícones, etc. Também serve para apresentar um pequeno texto. As instruções são mostradas por meio de uma linha de texto somente leitura, uma imagem, ou ambos. O construtor mais elaborado é JLabel (String, Icon, int). Os argumentos representam o rótulo a ser exibido, um ícone e o alinhamento, respectivamente. Também é possível a exibição de ícones em muito dos componentes Swing. Para JLabels, basta especificar um arquivo com extensão png, gif ou jpg no segundo argumento do construtor do JLabel, ou utilizar o método setIcon(Icon), o arquivo da imagem algumNome.xxx deve encontrar-se no mesmo diretório do programa, ou especifica-se corretamente a estrutura de diretórios até ele. 
*
*
*
Botões
É um componente que tem o comportamento semelhante ao de um botão real, quer dizer, ao clicarmos ou apertarmos o botão, uma ação é executada. Um programa Java pode utilizar vários tipos de botões, incluindo botões de comando, caixas de marcação, botões de alternância e botões de opção. Para se criar algum desses tipos de botões, deve-se instanciar uma das muitas classes que descendem da classe AbstractButton, a qual define muito dos recursos que são comuns aos botões do Swing. Este comportamento semelhante ao mundo real ajuda aos usuários na compreensão da interface.
JButton
É um dos componentes mais familiares e intuitivos ao usuário. Os botões de comando são criados com a classe JButton e seu pressionamento geralmente dispara a ação especificada em seu rótulo, que também suporta a exibição de pequenas imagens. Ao pressionar o botão, é gerado um evento ActionEvent que, juntamente com outros eventos, executam algum comando desejado. Estudaremos a fundo este comportamento na próxima aula (aula 8).
*
*
*
Exercício
*
Utilizando o NetBeans, crie um projeto como um novo aplicativo Java. Dentro deste aplicativo, crie um novo formulário JFrame. Dê o nome de Aula7Swing.java.
Coloque um JLabel no frame e coloque o nome desejado que apareça.
Execute o arquivo para ver o resultado.
*
*
JCheckBox
A classe JCheckBox dá suporte à criação de botões com caixa de marcação, sendo que qualquer número de itens pode se selecionado. 
Quando um item é selecionado, um ItemEvent é gerado. 
O mesmo pode ser tratado por um objeto que implemente a interface ItemListener. A classe que fornece as funcionalidades para este objeto deve definir o método itemStateChanged.
*
*
*
JRadioButton
Os botões de opção, que são definidos na classe JRadioButton, assemelham-se às caixas de marcação no que concerne aos seus estados (selecionado ou não selecionado). Entretanto, costumeiramente são usados em grupo no qual apenas um botão de opção pode ser marcado, forçando os demais botões ao estado não-selecionado.
*
*
*
JTextField / JPasswordField
Compreende a área de uma única linha que suporta a inserção ou exibição de texto. Pode-se definir se o texto pode ser manipulado com o método setEditable(boolean), utilizando no argumento o valor true. Quando o usuário digita os dados em uma JTexField e pressiona Enter, ocorre um evento de ação. Esse evento é processado pelo ouvinte de evento registrado que pode usar os dados que estão no JTexField no momento em que o evento ocorre. Estes procedimentos serão mais bem abordados na aula 8.
*
*
*
JTextArea
É uma área dimensionável que permite que múltiplas linhas de texto sejam editadas com a mesma fonte. Esta classe é herdada de JTextComponent, que define métodos comuns para JTextField, JTextArea e outros elementos GUI baseados em texto. 
*
*
*
JComboBox
Assemelha-se a um botão, porém, quando clicado, abre uma lista de possíveis valores ou opções. Mais precisamente é uma caixa de combinação que permite ao usuário fazer uma seleção a partir de uma lista de itens. Atende-se para que a lista da caixa de combinação, quando aberta, não ultrapasse os limites da janela da aplicação. Também é possível digitar nas linhas de uma caixa de combinação. Elas são implementadas com a classe JComboBox, herdada de JComponent. Tais caixas de combinação geram ItemEvents, assim como as JCheckBoxes.
*
*
*
Menus
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 Menu
Instancie um JMenuBar. Ele é o responsável pela estrutura do menu.
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 para montar a barra de menus
 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
*
*
*
Código para montar a 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
*
*
*
Código para montar a 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
**
*
Criando telas Polimórficas
Para aplicar os conceitos de classe abstrata, criação de telas, herança e polimorfismo, iremos fazer uma classe genérica de cadastro que possa ser utilizada para várias classes de negócio.
Para este sistema funcionar, precisamos construir uma tela de cadastro com uma barra de menus. Esta tela se liga a TelaCad. Dependendo da opção escolhida no menu, a tela de cadastro terá o comportamento de cadastro de Clube ou cadastro de Sócio. Isso é uma aplicação de polimorfismo.
*
*
*
Criando telas Polimórficas
As telas acima são herdadas de telaCad. Mas, cada uma contém um painel que determina as peculiaridades de cada cadastro.
Todas as funcionalidades comuns são descritas em TelaCad, enquanto que as necessidades particulares são re-escritas 
*
*
*
Fim!
*
*
AULA 1
AULA 1
*
AULA 1
AULA 1
	
AULA 1
*
AULA 1
	
AULA 1
*
AULA 1
	
AULA 1
*
AULA 1
	
AULA 1
*
AULA 1
	
AULA 1
*
AULA 1
	
AULA 1
*
AULA 1
	
AULA 1
*
AULA 1
	
AULA 1
*
AULA 1
	
AULA 1
*
AULA 1
	
AULA 1
*
AULA 1
	
AULA 1
*
AULA 1
	
AULA 1
*
AULA 1
	
AULA 1
*
AULA 1
	
AULA 1
*
AULA 1
	
AULA 1
*
AULA 1
	
AULA 1
*
AULA 1
	
AULA 1
*
AULA 1

Outros materiais