Buscar

Aula 4 Componentes basicos Swing

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 96 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 96 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 96 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

Aula 4 – Componentes Básicos do Swing 
Prof. Milton Escóssia 
2018 
PROGRAMAÇÃO II - CCT0418 
Java Swing Framework 
 O Swing é um framework que disponibiliza um 
conjunto de elementos gráficos para ser utilizado na 
plataforma Java. 
 
 
Árvore de Componentes Swing 
Classes da 
API AWT 
Classes da 
API SWING 
Containers Básicos do SWING 
 As classes SWING que herdam da classe Container: 
 JFrame, 
 Container top-level do tipo janela com barra de título e bordas, 
mas sem menubar. 
 Pode conter outros components como button, textfield etc. 
 
 JPanel 
 Container simples que não possui barra de título nem barra de 
menu e nem bordas. 
 Pode conter outros components como button, textfield etc. 
Métodos básicos de um Container 
Método Descrição 
public void add(Component c) Insere um componente no container. 
public void setSize(int largura,int 
altura) 
Determina as dimensões (largura e altura) do 
container. 
public void setLayout(LayoutManager 
m) 
Define o gerenciador de layout para o container. 
public void setVisible(boolean status) Altera a visibilidade do container. Por default o 
valor é “false”. 
A Classe JComponent 
 Todos os components da 
API Swing iniciam com a 
letra "J“ e são descendentes 
da classe JComponent. 
 Ex: JPanel, JScrollPane, 
 Jbutton, JTable. 
 
 A classe JComponent herda da class Container, o 
qual herda de Component. 
 A classe Component prove layout hints para suportar 
pintura e eventos. 
 Possui suporte que permite adicionar componentes para 
um container. 
Principais Componentes do Swing 
 Containers 
 JFrame (1) 
 JPanel (2) 
 
 Saída de Dados 
 JLabel (3) 
 
 Entrada de Dados 
 JTextField (4) 
 JPasswordField (5) 
 JTextArea (6) 
 JCheckBox (7) 
 JRadioButton (8) 
 
 Listas 
 JComboBox (9) 
 JList (10) 
 
 Ação 
 JButton (11) 
Métodos comuns nos Componentes Swing 
 get/setPreferredSize 
 get/setSize 
 get/setLocation 
 getLength/Width 
 repaint 
 setBackground(Color) 
 setFont(Font) 
 isEnabled / setEnabled(boolean) 
 isVisible / setVisible(boolean) 
Componentes Básicos do Swing 
 JLabel 
 JTexfField 
 JButton 
JLabel 
 Representa um rótulo de texto ou imagem. 
 
 Principais métodos : 
 void setText(String) - que altera o texto 
 String getText() - retorna o texto atual. 
 void setIcon(ImageIcon) – atribui uma imagem ao rótulo. 
 Icon getIcon() - retorna a imagem atual. 
Exemplo com Texto - Estrutura do Projeto 
ProgII 
JanelaSimpl
esComTexto 
JFrame 
A Classe Principal 
Exemplo com Texto - A janela 
Exemplo com Imagem - Estrutura do Projeto 
ProgII 
JanelaSimplesC
omImagem 
JFrame 
A Classe Principal 
Exemplo com Imagem - A janela 
JTextField 
 Representa um campo de texto onde o usuário pode 
informar um texto em uma linha. 
 
 Construtores: 
 JTextField( ) 
 JTextField(int tamanho) 
 JTextField(String frase) 
 JTextField(String frase, int tamanho) 
 
 Principais métodos: 
 void setText(String) - altera o texto 
 String getText() - retorna o texto atual 
Outras Propriedades 
 Background: cor de fundo do componente. 
 Editable: Propriedade que se estiver marcada permite a inserção/remoção pelo teclado. 
 Font: Definir fonte tamanho e estilo de texto. 
 Foreground: Cor do texto. 
 horizontalAlignment: Alinhamento do texto dentro do componente. 
 Text: texto que está dentro do campo. 
 toolTipText: texto que aparece sobre cursor quando é posicionado sobre o componente. Como 
um hint. 
 Cursor: define o cursor que aparece sobre o componente. 
 Border: define a borda para o componente. 
 selectedTextColor: cor do texto quando estiver selecionado. 
 selectionColor: cor da seleção do texto. 
Exemplo com Input - Estrutura do Projeto 
ProgII 
JanelaSimplesC
omInput 
JFrame 
A Classe Principal 
Exemplo com Input - A janela 
JButton 
 É uma região gráfica que permite tratar diversos 
eventos como: click, mouse over, mouse out, etc. 
 
 Permite ao usuário solicitar a execução de uma 
ação na aplicação. 
 
 Pertence ao pacote: import javax.swing.JButton 
JButton – Construtores 
Construtor Descrição 
JButton - Principais Métodos 
Descrição Método 
JButton - ActionCommand 
 Permite atribuir uma string (“tag”) ao botão para 
posterior identificação. 
 
 Métodos: 
 public void setActionCommand(String actionCommand) 
 public String getActionCommand() 
Componentes do JButton 
 Texto 
 Imagem 
 Texto e Imagem 
Exemplo com Botão - Estrutura do Projeto 
ProgII 
JanelaSimplesC
omBotao 
JFrame 
A Classe Principal 
Exemplo com Botão - A janela 
Outros Exemplos de Uso de Botões 
JButton com Texto 
 Instanciando: 
JButton com Imagem 
 Instanciando: 
JButton com Texto e Imagem 
 Instanciando: 
Como posso fazer para exibir os 
componentes JLabel, JTextField e JButton 
num JFrame ? 
Como Dispor Vários Componentes em um 
mesmo Container 
 O posicionamento de componentes dentro de um 
container pode ser realizado de duas formas 
básicas: 
 
 Posicional 
 
 Uso de Gerenciadores de Layout 
Posicionamento Absoluto do Componente 
 Sistema de Coordenadas de uma Janela: 
+x 
+y 
(0, 0) 
Posicionamento Absoluto do Componente 
 Pode-se utilizar o método “setBounds(x, y, largura, 
altura)” para especificar a posição e o tamanho do 
componente da GUI. 
 
 O método “setBounds” é utilizado para definer uma 
área retangular de um componente. 
 A posição (x, y) determina as coordenadas do canto 
superior esquerdo do componente. 
 
 Para posicionar um componente temos como 
premissa: 
 Deve-se atribuir o valor “null” ao layout do container. 
Posicionamento Absoluto do Componente 
+x 
+y 
(0, 0) 
Nome Completo 
(0, 0) 
(10, 30) 
JLabel rotulo = new JLabel(“Nome Completo:"); 
 
rotulo.setBounds(10, 30, 40, 20); 
40px 
20px 
Exemplo de Posicionamento Absoluto 
 Estrutura do projeto no NetBeans: 
Exemplo de Posicionamento Absoluto 
 Definindo as posições dos componentes: 
Exemplo de Posicionamento Absoluto 
 A classe executável: 
Exemplo de Posicionamento Absoluto 
 A classe janela: 
Exemplo de Posicionamento Absoluto 
 A classe janela (continuação): 
Uso de Gerenciadores de Layout 
 Organiza os componentes em regiões em um 
container. 
 
 Dividir a tela em regiões para posicionamento dos 
elementos de tela. 
 
 Permite o auto ajuste dos elementos da tela em 
caso de redimensionamento da tela, ou mudança na 
resolução do display. 
 
Determinando Um Gerenciador de Layout 
 É atribuído a um container de objetos (JFrame ou 
um JPanel). 
 
 O método “setLayout( )” permite definir qual 
gerenciador de layout será atribuído ao container. 
 
 Exemplo de gerenciadores de layout básicos: 
 FlowLayout 
 BorderLayout 
 GridLayout 
Gerenciadores de Layout Padrão 
 Os container possuem por padrão um gerenciador 
de layout atribuído: 
 O gerenciador de layout padrão do JFrame é o 
BorderLayout. 
 
 O gerenciador de layout padrão do JPanel é o 
FlowLayout. 
 
FlowLayout 
 Gerenciador de layout que organiza os 
componentes uma fila, colocados da esquerda para 
a direita,por ordem de adição ao layout. 
 
 Quando a borda do contêiner é alcançada, os 
componentes continuarão a ser exibidos na próxima 
linha. 
 
 Os componentes podem ser alinhados: 
 à esquerda, 
 centralizados (padrão) 
 alinhados à direita. 
FlowLayout 
FlowLayout 
BorderLayout 
 Gerenciador de layout que organiza os 
componentes em 5 regiões: 
 NORTH 
 SOUTH 
 EAST 
 WEST 
 CENTER 
BorderLayout 
Exercício 1 
 Reproduza a janela abaixo utilizando: 
 
 
 
 
 
 
 A) Solução baseada com FlowLayout 
 
 B) Solução baseada com BorderLayout 
Exercício 2 
 Reproduza a janela abaixo utilizando: 
 
 
 
 
 
 
 
 
 A) Solução baseada em posicionamento 
 
 B) Solução baseada com FlowLayout 
 
 C) Solução baseada com BorderLayout 
Para resolver o exercício 2B preciso 
determinar o tamanho de cada componente 
dentro do gerenciador de layout. É possível 
fazer isso ? 
Usando setSize( ) x setPreferredSize( ) 
 
Existe uma outra forma de adicionar 
diversos componentes Swing em uma 
Janela (JFrame) ? 
Sim!!! Similar a forma como se organiza 
uma gaveta! 
Sim!!! Similar a forma como se organiza 
uma gaveta! Usando ORGANIZADORES! 
No Swing usa-se o Container JPanel 
Usando o Container JPanel 
 Outra forma de adicionar elementos a JFrame é 
fazer uso de um JPanel. 
 Para exibir vários componentes organizadamente é 
preciso usar um painel para agrupar esses componentes: 
o JPanel. 
 
 Um JPanel permite colocar uma infinidade de elementos 
(JComponents) dentro dele. 
 A ordem em que os componentes são adicionados importa. 
Exibindo o Conteúdo de um JPanel 
 Após adicionar componentes a um JPanel deve-se 
adicioná-lo ao JFrame. Isso possibilita a criação de 
layouts mais complexos. 
 Os componentes adicionados ao JPanel estão apenas na 
memória, não visíveis ainda. 
 
 Para exibir esses componentes na tela gráfica (GUI) é 
necessário adicionar o JPanel ao JFrame. Este é responsável 
em exibir uma janela gráfica. 
 
Usando o Container JPanel 
 Um panel é um container que pode-se usar (além do 
JFrame) 
 
 Principais métodos: 
 public JPanel(): Cria um JPanel com o gerenciador de layout 
padrão. 
 O gerenciador de layout padrão do JPanel é o FlowLayout. 
 
 public JPanel(LayoutManager layout): Cria um Jpanel com o 
gerenciador de layout especificado. 
 
 Um JPanel pode depois ser acrescentado em um 
JFrame para melhorar o layout das telas. 
Exemplo JPanel – Adicionando 
Componentes 
Exemplo JPanel – Determinando o Layout 
Exemplo JPanel – Determinando o Layout 
no Construtor 
Exemplo JPanel – Determinando o Layout 
no Construtor 
Exercício 3 
 Crie um Projeto chamado CalculadoraSimples de forma 
a reproduzir a janela segundo as regras abaixo: 
 Utilize somente os containers: JFrame e Jpanel 
 O JFrame possui como dimensões: 
 LARGURA = 250; 
 ALTURA = 350; 
 Utilize apenas os gerenciadores de layout: 
 FlowLayout e BorderLayout. 
 Utilize os componentes: 
 JTextField 
 JButton 
Como fazer com que ao clicar no botão ele 
exiba uma mensagem num JOptionPane ? 
Tratamento de Eventos 
 Eventos podem ser disparados por usuários, 
sistema operacional, ou por outras aplicações. 
 
 Aplicações baseadas em GUIs são baseadas em 
eventos. 
 Eventos são tarefas realizadas quando um usuário 
interage com algum componente GUI. 
Tratamento de Eventos 
 As ações do usuário são convertidas em eventos. 
Exemplo no Java: 
 Quando ocorre uma ação (ActionEvent); 
 Clique do mouse (MouseEvent); 
 Apertar em uma tecla (KeyEvent); 
 Fechar uma janela (WindowEvent); 
 
Tratamento de Eventos 
 As tarefas de respostas realizadas em um evento 
são conhecidas como handler de evento e o 
processo total de responder a eventos é conhecido 
como tratamento de evento. 
 Cada tipo de evento precisa ser implementada uma 
interface de escuta. 
 
 As informações de evento são armazenadas em um 
objeto de uma classe que herda da classe 
AWT.Event. 
Classes de Evento do pacote java.awt 
Fonte: https://www.devmedia.com.br/trabalhando-com-eventos-na-gui-do-java/25898 
Interfaces Ouvintes de Eventos dos Pacotes 
javax.swing.event. 
Fonte: https://www.devmedia.com.br/trabalhando-com-eventos-na-gui-do-java/25898 
Elementos do Evento 
 Existem três elementos para o funcionamento do 
tratamento de evento: 
 Origem do Evento: é o componente GUI com qual o 
usuário interage. 
 
 Objeto do Evento: contém os dados do evento invocado, 
sendo como uma referência à origem do evento e 
quaisquer informações específicas do evento que podem 
ser exigidas pelo ouvinte para testar o evento. 
 
 Ouvinte do Evento: é um objeto que é notificado pela 
origem de evento quando um evento ocorre. 
Tratando Eventos de Clique no Botão 
 Quando um usuário clica em um botão, é necessário 
informar ao componente JButton que há um 
interesse em tratar esse evento. 
 
 O tratamento ao evento é implementado usando a 
interface ActionListener. 
Tratando um Evento com ActionListener 
 Deve-se habilitar o componente para “ouvir” o 
eventos através do método addActionListener(). 
 
 Deve-se passar como parâmetro a referência ao 
container que receberá o evento. 
 Consiste na referência do objeto da classe que 
implementa a interface ActionListener. 
 
Tratando um Evento com ActionListener 
 Consiste em definir o método de manipulação de 
evento da interface ActionListener: 
 
public void actionPerformed(ActionEvent evento) { 
 // Aqui deve conter o código do tratamento do evento. 
} 
Formas de Tratamento de Evento 
 Por Classe Anônima 
 Por Implementação de Interface 
 Por Handler 
Tratamento do Evento por Classe Anônima 
Tratamento do Evento por Implementação 
da Interface Listener 
Tratamento do Evento por Implementação 
de um Handler 
Referenciando o Handler para Tratamento 
do Evento 
Faz a chamada 
a instância do 
BotãoHanfler 
Exemplo 1 
 Implementar uma janela com o botão “Exibir 
Mensagem”. Ao clicar no botão deverá exibir uma 
janela de diálogo com a mensagem “Boa noite 
pessoal !!!”. 
Exemplo 1 – Classe Executora 
Exemplo 1 – A Classe Janela 
Exemplo 1 – O método Configurar Janela 
Exemplo 1 – O método Inicializar 
Componentes 
Exemplo 1 – O método Criar Botão 
Mensagem (tratamento por classe Anônima) 
Exercício 4 
 Altere o exemplo 1 (anterior) para que o tratamento 
de evento da clique sobre o botão seja realizado por 
implementação da interface ActionListener na classe 
Janela. 
Exercício 5 
 Altere o exercício 4 (anterior) adicionando 5 botões, 
de forma que ao clicar sobre cada botão, onde cada 
botão deverá exibir uma mensagem diferente. 
Exercício 6 
 Altere o exercício 5 (anterior) realizando o 
tratamento de evento por classe externa (Handler). 
Exercício 7 - Calculadora 
 Altere o Projeto chamado CalculadoraSimples de 
forma a seguir as regras do slide seguinte: 
 Utilize somente os containers: JFrame e JPanel 
 Utilize apenas os gerenciadores de layout: FlowLayout e 
BorderLayout. 
 Utilize os componentes: 
 JTextField 
 JButton 
Exercício 7 - Calculadora 
 Construção da interface 
 Usar componentes: JFrame, JPanel, Layout, JTextField, 
JButton 
 Deverá conter botões representando: 
 Os dígitos de 0 a 9 
 As operações C, +, - , *, / e = Implementar a lógica da calculadora 
 Usar somente uma caixa de entrada 
 A caixa de entrada deverá estar bloqueada para digitação. 
 Ao clicar no botão do nº deverá inserir o nº na caixa de 
entrada. 
 Ao clicar na operação deverá exibir limpar a tela para entrada 
de novo valor, caso já tenha um valor exibir o resultado da 
operação. 
 
 
Exercício 8 – Formulário de Cadastro de 
Alunos 
 Crie um projeto chamado CadastroAluno e crie o 
formulário abaixo: 
 Ao clicar no botão salvar deverá validar os campos 
obrigatórios: Nome do aluno, Fone e Endereço 
Matricula: Nome do Aluno*: 
Emai: Telefone*: 
Endereço*: 
Salvar Carregar Foto 
Referências 
 SWING - Componentes mais importantes e suas 
propriedades 
 https://www.devmedia.com.br/swing-componentes-mais-
importantes-e-suas-propriedades/16113 
 
 Propriedades do JLabel - Java Swing componentes 
NetBeans – Parte 6 
 https://www.devmedia.com.br/propriedades-do-jlabel-java-
swing-componentes-netbeans-parte-6/21807 
 
 Java Swing: Propriedades do JTextField 
 https://www.devmedia.com.br/java-swing-propriedades-do-
jtextfield/21207 
 
 
 
Apostilas - Java Swing 
 Caelum – FJ-16:Laboratório Java com Testes, XML 
e Design Patterns 
 Disponível em: 
http://www.caelum.com.br/apostila-java-
testes-xml-design-patterns/ 
 
 Capítulos: 
 Capítulo 5 - Interfaces gráficas com Swing 
 Capítulo 8 - Mais Swing: layout managers, mais componentes e 
detalhes 
 Capítulo 11 - Apêndice - Mais swing e recursos avançados

Continue navegando