Escolar Documentos
Profissional Documentos
Cultura Documentos
java.lang.Object
java.awt.Component
java.awt.Container
javax.swing.JComponent
© ELFS 90
• A janela de uma interface gráfica é construída a partir de uma classe
descendente da classe Window (do pacote java.awt).
© ELFS 91
Exemplo 1: Uma janela sem nada
Exemplo1.java
public class Exemplo1
{
private JFrame janela;
public Exemplo1()
{
janela = new JFrame("Primeira Janela");
public Exemplo2()
{
janela = new JFrame("Primeira Janela");
janela.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
P1
P3
P4
P2
public Exemplo4()
{
janela = new JFrame("Janela com Componentes");
janela.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
p1.setBackground(Color.yellow);
p2.setBackground(Color.white); Cor de fundo do painel.
p1.add(label); Notar o uso de setters e de
p2.add(botao); constrantes estáticas.
p3.add(outro);
© ELFS 96
Container c = janela.getContentPane();
c.setLayout(new BorderLayout()); O gerenciador BorderLayout
divide o painel de conteúdo em 5
c.add(p1,BorderLayout.NORTH); regiões: norte, sul, oeste, leste e
c.add(p2,BorderLayout.SOUTH); centro. Notar que a classe
c.add(p3,BorderLayout.EAST); BorderLayout define constantes
janela.setSize(400,300); para cada uma das regiões:
janela.setVisible(true); NORTH, SOUTH, WEST, EAST,
} CENTER.
© ELFS 97
Gerenciadores de Layout
• Os gerenciadores de layout organizam os componentes da GUI em um
contêiner. Estes gerenciadores definem o posicionamento e o tamanho dos
componentes no 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
© ELFS 98
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).
GridLayout
Organiza os componentes em linhas e colunas, como numa tabela. Os
componentes são incluídos nas células da esquerda para a direita e de cima para
baixo. Qualquer componente adicionado a uma célula ocupa toda a célula.
© ELFS 99
Exemplo 5: Uso do gerenciador FlowLayout
Exemplo5.java
public class Exemplo5
{
private JFrame janela;
public Exemplo5()
{
janela = new JFrame("Janela com FlowLayout");
janela.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
JButton b1 = new JButton("Botão 1");
JButton b2 = new JButton("Botão 2");
JButton b3 = new JButton("Botão 3");
Container c = janela.getContentPane();
c.setLayout(new FlowLayout(FlowLayout.RIGHT));
c.add(b1);
c.add(b2);
c.add(b3);
janela.setSize(400,200);
janela.setVisible(true);
}
public Exemplo6() {
janela = new JFrame("Janela com BorderLayout");
janela.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
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");
Container c = janela.getContentPane();
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 Exemplo7()
{
janela = new JFrame("Janela com GridLayout");
janela.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
public Exemplo8() {
janela = new JFrame("Janela com GridLayout");
janela.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
Container c = janela.getContentPane();
c.add(p,BorderLayout.CENTER);
janela.setSize(400,200);
janela.setVisible(true);
}
private Exercicio()
{
janela = new JFrame("Exercício");
janela.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
// Painel superior
pcima = new JPanel();
pcima.setBackground(Color.ORANGE);
b = new JButton("Calcular");
pcima.add(b);
// Painel inferior
pbaixo = new JPanel();
pbaixo.setBackground(Color.YELLOW);
tempo = new JLabel("Tempo = 0");
pbaixo.add(tempo);
© ELFS 105
// Painel central
pcentro = new JPanel(new GridLayout(3,2));
pcentro.setBackground(Color.WHITE);
l1 = new JLabel(" Espaço inicial:");
l2 = new JLabel(" Velocidade inicial:");
l3 = new JLabel(" Aceleração:");
t1 = new JTextField();
t2 = new JTextField();
t3 = new JTextField();
pcentro.add(l1);
pcentro.add(t1);
pcentro.add(l2);
pcentro.add(t2);
pcentro.add(l3);
pcentro.add(t3);
© ELFS 106
// Dimensionar e mostrar a janela
janela.setSize(300,200);
janela.setVisible(true);
}
© ELFS 107