Logo Passei Direto
Buscar
Material
páginas com resultados encontrados.
páginas com resultados encontrados.
left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

Prévia do material em texto

Interface Gráfica com Swing
Aula 3
Professora: Jane
Programação Orientada a Objetos Professora : Jane2
Hierarquia de classes 
java.lang.Object
+--java.awt.Component
+--java.awt.Container
+--javax.swing.JComponent
| +--javax.swing.JButton
| +--javax.swing.JLabel
| +--javax.swing.JMenuBar
| +--javax.swing.JOptionPane
| +--javax.swing.JPanel
| +--javax.swing.JTextField
|
+--java.awt.Window
+--java.awt.Frame
+--javax.swing.JFrame
Programação Orientada a Objetos Professora : Jane3
Continuando com gerenciadores de layout ... 
Agora : BorderLayout
• Default do frame  BorderLayout 
EASTWEST
SOUTH
NORTH
Programação Orientada a Objetos Professora : Jane4
Código usando BorderLayout
import javax.swing.*;
import java.awt.*;
public class Main {
public static void main(String args[]) {
JFrame f = new JFrame();
f.setLayout(new BorderLayout()); //Precisa desta linha ?
f.add(new JButton ("Botão 1 "), BorderLayout.NORTH);
f.add( new JTextField ("TEXTO 2" ) , BorderLayout.EAST);
f.add( new JTextField ("TEXTO 1" ) , BorderLayout.WEST);
f.add(new JButton("Botão 2") , BorderLayout.CENTER);
f.add( new JButton ("Botão 3"), BorderLayout.SOUTH);
f.setSize(300,400);
f.setVisible(true);
f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
} 
} Antes da versão 1.5 era possível adicionar ao frame com getContentPane.
Teste o 
projeto da 
pasta da 
profa. ! 
Programação Orientada a Objetos Professora : Jane5
Observação :
• Note que add foi usado com dois argumentos. Revendo trecho do exemplo 
anterior :
f.add(new JButton ("Botão 1 "), BorderLayout.NORTH);
Componente a ser 
adicionado, que 
no caso é um 
botão com rótulo
Botão 1
Posição de 
inserção
Programação Orientada a Objetos Professora : Jane6
Mais comentários sobre JFrame
Fonte : http://docs.oracle.com/javase/7/docs/api/
• Cada container top-level, como JFrame, possui um painel de conteúdo (content 
pane). Uma barra de menu é, por convenção, posicionada dentro do objeto de 
JFrame, mas fora do seu painel de conteúdo (content pane). No painel de 
conteúdo podemos adicionar botões, textfields, labels …
• Veja a figura de um frame criado para uma aplicação. O frame contém uma
barra de menu verde e, no painel de conteúdo do frame, possui uma grande área
amarela . 
Programação Orientada a Objetos Professora : Jane7
Camadas
• Veja :
• A “layered pane” contém a barra de menu e o content pane. A “glass pane” é 
frequentemente usada, por exemplo, para interceptar eventos que ocorram no 
frame. Veremos eventos em uma aula mais adiante.
• A partir da versão 1.5 do Java não é mais preciso usar o método getContentPane
para obter o painel de conteúdo do frame e assim, adicionar componentes ao
frame. 
Programação Orientada a Objetos Professora : Jane8
Exercício:
• Faça uma aplicação em Java para construir a interface abaixo com o layout de 
borda
Em alguma outra aula : GridBagLayout
Programação Orientada a Objetos Professora : Jane9
Layouts compostos
• Para trabalhar com mais de um layout, dividimos a interface em partes e 
aplicamos a cada uma delas um container com um layout
manager (gerenciador de layout). Assim, cada container abrigará os 
componentes conforme o desejado.
• Recordando .... 
– para colocar mais de um componente em fluxo dentro de uma área de um 
container, devemos usar o gerenciador de layout FlowLayout,
– se quisermos dividir uma área em células, usaremos o GridLayout,
– e para dividir um container em Norte, Sul, Leste, Oeste e Centro, usaremos o 
BorderLayout.
Programação Orientada a Objetos Professora : Jane10
Exemplo de layout composto
• Os layouts aqui usados são :
 FlowLayout
 BorderLayout
Programação Orientada a Objetos Professora : Jane11
Código
import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.FlowLayout;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JPanel;
public class Main {
public static void main(String[] args) {
JFrame j = new JFrame("Teste");
JPanel p1 = new JPanel(new FlowLayout());
JPanel p2 = new JPanel(new BorderLayout());
Programação Orientada a Objetos Professora : Jane12
p1.add(new JButton("B1 - painel 1"));
p1.add(new JButton("B2 - painel 1"));
p1.setBackground(Color.BLUE); //define cor de fundo
p2.add(new JButton("B1 - painel 2"), BorderLayout.WEST);
p2.add(new JButton("B2 - painel 2"), BorderLayout.EAST);
p2.setBackground(Color.YELLOW); //define cor de fundo 
j.add(p1, BorderLayout.NORTH);
j.getContentPane().add(new JButton("Botão central"),
BorderLayout.CENTER);
j.add(p2,BorderLayout.SOUTH);
j.setVisible(true);
j.setSize(300,300);
j.setLocation(200,200); // continua .... } }
Programação Orientada a Objetos Professora : Jane13
Exercício com layout composto
• Escreva uma aplicação em Java com botões e campo de texto para construir uma 
calculadora semelhante à dada abaixo. Use, obrigatoriamente, os layout(s) 
visto(s). Veja a sugestão abaixo.
Painel com 
FlowLayout
Painel com 
GridLayout
Painel com 
GridLayout
Programação Orientada a Objetos Professora : Jane14
Exercício com layout composto
• Crie uma aplicação em Java para criar a interface dada abaixo. Note que há um 
objeto novo, um objeto da classe JTextArea. Vamos discutir o layout e no final, 
saber mais sobre a classe JTextArea e a classe Date.
Área de 
texto
BRST : Brasilia Summer Time
Programação Orientada a Objetos Professora : Jane15
Use na janela o BorderLayout
Painel 
botoes
(usa FlowLayout)
Painel 
barraStatus
(usa FlowLayout)
Painel botoes está 
ao norte e o painel 
barraStatus está ao sul.
Como o painel botoes ficará ao norte da janela, a área de texto ao centro 
da janela e a barraStatus ao sul, trabalharemos com o BorderLayout para 
dispor os 3 painéis sobre o frame. 
Programação Orientada a Objetos Professora : Jane16
O que há de novo neste exercício ?
• Classe JTextArea (pertence ao pacote javax.swing)
Exemplo que cria o objeto areaTexto da classe JTextArea :
JTextArea areaTexto = new JTextArea("Digite seu texto aqui: ", 20, 50);
Note : Este construtor recebe o texto que aparece na área, o número de linhas e
o número de colunas. Em outra aula, estudaremos mais a classe JTextArea.
• Trecho que define a cor de fundo da área de texto (text area) :
areaTexto.setBackground(Color.yellow);
Programação Orientada a Objetos Professora : Jane17
• Classe Date (importar pacote java.util)
//Teste e veja que fornece dia, mês, ano, hora, minuto, segundo e ... Veja !!
Exemplo :
Date agora = new Date(); 
JLabel relogio = new JLabel("Data/Hora: " + agora);
Exemplo : De outro jeito
JLabel relogio = new JLabel("Data/Hora: " + new Date() );
Exemplo : Ou ainda ... Veja o toString !
JLabel relogio = new JLabel(new Date().toString()); 
// É obrigatório o toString aqui, pois new Date() me fornece uma referência.
Programação Orientada a Objetos Professora : Jane18
Exercício : 
Treinando painéis compostos
• Monte o layout abaixo, depois de acompanhar as orientações que aparecem nos 
próximos slides. Escolha uma cor de fundo para cada área.
Programação Orientada a Objetos Professora : Jane19
 Novamente, para montar um layout mais complexo, 
podemos dividir em dois passos:
1. Combinar vários painéis usando o BorderLayout ;
2. Acrescentar os componentes aos painéis.
Programação Orientada a Objetos Professora : Jane20
 Temos que criar alguns painéis estruturantes (P2, P23) e, dentro desses, os 
painéis de conteúdo (em azul).
 Os painéis estruturantes, nesse exemplo, usam BorderLayout.
 Lembre-sede que, no BorderLayout, a área é dividida em 5 regiões e só 
podemos colocar um elemento em cada região.
P1
P21
P231
P22
P232
P2
P23
P3
Programação Orientada a Objetos Professora : Jane21
Observe 
• P1:norte
• P2: centro
– P21: norte
– P22: oeste
– P23: centro
• P231: norte
• P232: centro
• P3: sul
P1
P21
P231
P22
P232
P2
P23
P3
Programação Orientada a Objetos Professora : Jane22
Após compor o layout ...
• Pede-se :
– Em P1 : formulário para nome e sobrenome, em textfields diferentes. 
– Em P21 : formulário para telefone e email.
– Em P22 : um ou mais labels com mensagens a sua escolha
– Em P231 : Data/hora : seguido da data e hora correntes.
– Em P232 : Uma área de texto com 3 linhas e 30 colunas.
– Em P3 : três botões, por exemplo : Inserir Remover Sair
Veja a tela a seguir ....
Programação Orientada a Objetos Professora : Jane23
P1
P21
P231
P22
P232
P2
P23
P3

Mais conteúdos dessa disciplina