Buscar

PC2 Cap5

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

© ELFS 74 
•  Vamos discutir como construir aplicações com interface gráfica de usuário 
(conhecida como GUI - Graphical User Interface). 
•  Numa interface gráfica existem botões, caixas de texto, painéis, barras de 
rolagem, e muitos outros componentes com os quais o usuário pode 
interagir. Java dispõe de classes apropriadas para a construção de GUIs. 
© ELFS 75 
•  Toda interface gráfica em Java tem como superclasse a classe Component 
(que pertence ao pacote java.awt). Logo, qualquer componente presente em 
uma janela gráfica é um objeto da classe Component. 
•  Vamos considerar, basicamente, os componentes da classe JComponent 
como: JButton, JLabel, JCheckBox, JFrame, JPanel, JList, JMenu, 
JRadioButton, JScrollPane, ... 
•  Alguns destes componentes são contêineres, ou seja, componentes que 
acomodam outros componentes, por exemplo, JPanel. 
java.lang.Object 
java.awt.Component 
javax.swing.JComponent 
java.awt.Container 
© ELFS 76 
•  A janela de uma interface gráfica é construída a partir de uma classe 
descendente da classe java.awt.Window. 
•  As duas principais classes para construção de GUIs são: 
•  JFrame: Implementa uma janela gráfica com todas as funcionalidades 
(redimensionamento, fechamento, minimização, ...) sendo, portanto, a 
classe base para qualquer aplicativo com GUI. 
•  JDialog: Implementa uma janela gráfica dependente de outra janela. 
•  As classes JFrame e JDialog também são contêineres, pois irão acomodar 
todos os demais componentes que irão compor a GUI. 
•  O posicionamento dos elementos num contêiner é feito de maneira 
automática por gerenciadores de layout. Cada container tem seu gerenciador 
de layout padrão. Se não existir um gerenciador de layout associado ao 
container (layout = null), então o posicionamento dos componentes no 
contêiner deverá ser feito manualmente. 
© ELFS 77 
Exemplo 1: Uma janela sem nada 
•  A GUI será um objeto da classe JFrame (campo privado da classe). 
•  O construtor padrão da classe cria a GUI e define o título e o tamanho da 
janela. 
•  O que acontece ao fechar a janela? 
public class Exemplo1 
{ 
 private JFrame janela; 
 public Exemplo1() 
 { 
 janela = new JFrame("Primeira Janela"); 
 janela.setSize(400,300); 
 janela.setVisible(true); 
 } 
 public static void main(String[] args) 
 { 
 Exemplo1 p = new Exemplo1(); 
 } 
} 
Exemplo1.java 
Os métodos setSize() e setVisible() são obrigatórios. 
Comente essa linha e verifique o que acontece. 
© ELFS 78 
Exemplo 2: Liberar a JVM ao fechar a janela 
•  Normalmente, o fechamento de uma janela apenas a torna invisível. Com o 
método setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE), ao fechar a 
janela será chamado o método exit(), que libera a JVM. 
public class Exemplo2 
{ 
 private JFrame janela; 
 public Exemplo2() 
 { 
 janela = new JFrame("Primeira Janela"); 
 janela.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 
 janela.setSize(400,300); 
 janela.setVisible(true); 
 } 
 public static void main(String[] args) 
 { 
 Exemplo2 p = new Exemplo2(); 
 } 
} 
Exemplo2.java 
Exemplo 3: Adicionando componentes 
© ELFS 79 
public class Exemplo3 
{ 
 private JFrame janela; 
 public Exemplo3() 
 { 
 janela = new JFrame("Janela com Componentes"); 
 janela.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 
 Container c = janela.getContentPane(); 
 JLabel rotulo = new JLabel("Elemento JLabel"); 
 JButton botao = new JButton("Botão Simples"); 
 c.setLayout(new FlowLayout()); 
 c.add(botao); 
 c.add(rotulo); 
 janela.setSize(400,300); 
 janela.setVisible(true); 
 } 
 public static void main(String[] args) 
 { 
 Exemplo3 p = new Exemplo3(); 
 } 
} 
Notar que os componentes 
são incluídos na área de 
conteúdo (ContentPane) da 
janela gráfica. 
Exemplo3.java 
O gerenciador FlowLayout acomoda os 
componentes da esquerda para a direita, 
na ordem em que são incluídos na janela. 
© ELFS 80 
O Componente JPanel 
•  GUIs complexas exigem componentes colocados em posições específicas. A 
interface gráfica a seguir, por exemplo, pode ser construída usando-se 4 
painéis: superior (P1), inferior (P2), central (P3) e à direita (P4). 
•  Um painel é um contêiner e portanto, pode conter qualquer outro 
componente, inclusive outros painéis. Cada painel pode ter o seu próprio 
gerenciador de layout. Assim, pode-se construir GUIs bastante sofisticadas. 
P1 
P2 
P3 
P4 
© ELFS 81 
Exemplo 4: Janela usando painéis 
public class Exemplo4 
{ 
 private JFrame janela; 
 public Exemplo4() 
 { 
 janela = new JFrame("Janela com Componentes"); 
 janela.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 
 Container c = janela.getContentPane(); 
 JPanel p1 = new JPanel(); 
 JPanel p2 = new JPanel(); 
 JPanel p3 = new JPanel(); 
 JLabel label = new JLabel("Elemento JLabel"); 
 JButton botao = new JButton("Botão simples"); 
 JButton outro = new JButton("Outro botão"); 
 p1.setBackground(Color.yellow); 
 p2.setBackground(Color.white); 
 p1.add(label); 
 p2.add(botao); 
 p3.add(outro); 
Exemplo4.java 
Cor de fundo do painel. 
© ELFS 82 
 c.setLayout(new BorderLayout()); 
 c.add(p1,BorderLayout.NORTH); 
 c.add(p2,BorderLayout.SOUTH); 
 c.add(p3,BorderLayout.EAST); 
 janela.setSize(400,300); 
 janela.setVisible(true); 
 } 
 public static void main(String[] args) 
 { 
 Exemplo4 p = new Exemplo4(); 
 } 
} 
O gerenciador BorderLayout divide 
o painel de conteúdo em 5 regiões: 
norte, sul, leste, oeste e centro. 
© ELFS 83 
Gerenciadores de Layout 
•  Os gerenciadores de layout organizam os componentes GUI em um 
contêiner. São estes gerenciadores que definem o posicionamento e o 
tamanho dos componentes em um contêiner. 
•  Se o gerenciador de layout for desligado, com setLayout(null), será 
necessário posicionar cada um dos componentes manualmente, com o 
método setBounds(x, y, largura, altura). 
•  Os principais gerenciadores de layout são: 
•  FlowLayout 
•  BorderLayout 
•  GridLayout 
•  Outro gerenciador de layout importante: 
•  SpringLayout 
Gerenciador de layout bem flexível, normalmente utilizado por construtores 
automáticos de GUI. 
© ELFS 84 
FlowLayout (padrão para JPanel) 
Organiza os componentes sequencialmente, linha por linha, da esquerda para a 
direita, na ordem em que são incluídos. Os componentes podem ser alinhados à 
esquerda, à direita ou no centro (o padrão). 
BorderLayout (padrão para JFrame e JDialog) 
Organiza os componentes em 5 regiões: Norte, Sul, Leste, Oeste e Centro. Todo 
o espaço não utilizado pelas regiões é deixado para o centro. Cada uma das 
regiões só aceita um componente. No caso de haver vários componentes, incluir 
um JPanel e depois adicionar os componentes ao painel. 
GridLayout 
Organiza os componentes em linhas e colunas, da esquerda para a direita e de 
cima para baixo. Qualquer componente adicionado a uma célula ocupa toda a 
célula. 
© ELFS 85 
Exemplo 5: Uso do gerenciador FlowLayout 
public class Exemplo5 
{ 
 private JFrame janela; 
 public Exemplo5() 
 { 
 janela = new JFrame("Janela com FlowLayout"); 
 janela.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 
 Container c = janela.getContentPane(); 
 JButton b1 = new JButton("Botão 1"); 
 JButton b2 = new JButton("Botão 2"); 
 JButton b3 = new JButton("Botão 3"); 
 c.setLayout(new FlowLayout(FlowLayout.RIGHT)); 
 c.add(b1); 
 c.add(b2); 
 c.add(b3); 
 janela.setSize(400,300); 
 janela.setVisible(true); 
 } 
 public static void main(String[] args) 
 { 
 Exemplo5 p = new Exemplo5(); 
 } 
} 
Exemplo5.java© ELFS 86 
Exemplo 6: Uso do gerenciador BorderLayout 
public class Exemplo6 
{ 
 private JFrame janela; 
 public Exemplo6() { 
 janela = new JFrame("Janela com BorderLayout"); 
 janela.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 
 Container c = janela.getContentPane(); 
 JButton b1 = new JButton("Botão 1"); 
 JButton b2 = new JButton("Botão 2"); 
 JButton b3 = new JButton("Botão 3"); 
 JButton b4 = new JButton("Botão 4"); 
 JButton b5 = new JButton("Botão 5"); 
 c.add(b1, BorderLayout.NORTH); 
 c.add(b2, BorderLayout.SOUTH); 
 c.add(b3, BorderLayout.EAST); 
 c.add(b4, BorderLayout.WEST); 
 c.add(b5, BorderLayout.CENTER); 
 janela.setSize(400,300); 
 janela.setVisible(true); 
 } 
 public static void main(String[] args) { 
 Exemplo6 p = new Exemplo6(); 
 } 
} 
Exemplo6.java 
© ELFS 87 
Exemplo 7: Uso do gerenciador GridLayout 
public class Exemplo7 
{ 
 private JFrame janela; 
 public Exemplo7() { 
 janela = new JFrame("Janela com GridLayout"); 
 janela.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 
 Container c = janela.getContentPane(); 
 c.setLayout(new GridLayout(2,2)); 
 JButton b1 = new JButton("Botão 1"); 
 JButton b2 = new JButton("Botão 2"); 
 JButton b3 = new JButton("Botão 3"); 
 JButton b4 = new JButton("Botão 4"); 
 c.add(b1); 
 c.add(b2); 
 c.add(b3); 
 c.add(b4); 
 janela.setSize(400,300); 
 janela.setVisible(true); 
 } 
 public static void main(String[] args) { 
 Exemplo7 p = new Exemplo7(); 
 } 
} 
Exemplo7.java

Continue navegando