Docstoc

Interface Gráfica AWT SWING

Document Sample
Interface Gráfica AWT SWING Powered By Docstoc
					Interface Gráfica
      AWT
     SWING
  Renata Zanella
  Programação II
   12/05/2011
  Criando seu primeiro aplicativo de
       interface gráfica em Java
• Um aplicativo de interface gráfica em Java é
  criado usando-se a classe JFrame. Objetos
  desta classe servem como containeres para
  outros componentes e são as janelas
  principais dos aplicativos, com título e botões
  para redimensionar, minimizar, maximizar e
  fechar.
                   Aplicação Java
              Exemplo herdando a JFrame
import javax.swing.*;

public class Estudos extends JFrame{ // herda da classe JFrame
 public Estudos() { // construtor
   super("Minha primeira aplicação GUI"); // passa como parâmetro para a
    superclasse o título da janela
   setSize(350, 250); // seta o tamanho da janela
   setVisible(true); // torna visivel a janela
 }

    public static void main(String args[]){
      Estudos app = new Estudos(); // instância a classe Estudos
      app.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); //Permite fechar a janela
    }
}
        Gerenciadores de Layout
• Uma GUI é construída a partir de componentes
  chamados contêineres que contém outros
  componentes. Os mais usados são o JFrame e o JPanel.
• Caso nenhum gerenciador de layout seja especificado,
  será considerado que toda a extensão do contêiner é
  formada por uma única célula, possibilitando assim
  apenas a inclusão de um objeto.
• Os principais gerenciadores de layout são: FlowLayout,
  GridLayout, BorderLayout e CardLayout.
                                                    BorderLayout
import javax.swing.*;
import java.awt.*;

public class BorderLayoutTest extends JFrame
{
  public BorderLayoutTest()
  {
    JButton botao1 = new JButton("Botão 1");
    JButton botao2 = new JButton("Botão 2");
    JButton botao3 = new JButton("Botão 3");
    JButton botao4 = new JButton("Botão 4");
    JButton botao5 = new JButton("Botão 5");

        // Como o padrao de um JFrame é o
        // BorderLayout, simplesmente adicionamos
        // os componentes na tela
        getContentPane().add(botao1, BorderLayout.NORTH);
        getContentPane().add(botao2, BorderLayout.CENTER);
        getContentPane().add(botao3, BorderLayout.WEST);
        getContentPane().add(botao4, BorderLayout.SOUTH);
        getContentPane().add(botao5, BorderLayout.EAST);

        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

        pack();
        setVisible(true);
    }

    public static void main(String args[])
    {
      new BorderLayoutTest();
    }
}
 Adicionando componentes à janela
           do aplicativo
• Embora já exista ferramentas de programação
  que facilitem bastante a construção de
  interfaces gráficas, é importante saber como
  componentes visuais são adicionados à janela
  do aplicativo. Veja um exemplo:
                                                    Exemplo
import java.awt.*;
import javax.swing.*;

public class Estudos extends JFrame{
 public Estudos() {
  super("Minha primeira aplicação GUI");

        // obtém o painel de conteúdo e adiciona
        // um botão à janela
        JButton btn = new JButton("Clique Aqui");// cria uma instância de um botão
        getContentPane().add(btn, BorderLayout.SOUTH);//adiciona o botão no sul do layout borderlayout

        setSize(350, 250);//tamanho da janela
        setVisible(true);//torna visível a janela
    }

    public static void main(String args[]){
      Estudos app = new Estudos(); // instãncia a classe
      app.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); //permite fechar o aplicativo
    }
}
     Exemplo importanto a classe JFrame
import javax.swing.JFrame; //importação da classe JFrame

public class PrimeiroSwing {
// criamos um JFrame chamado 'janela'
JFrame janela = new JFrame();

public static void main(String args[]) {
new PrimeiroSwing();
}

private PrimeiroSwing() {

// definimos o título da janela
janela.setTitle("Primeira Aplicação Gráfica");
// definimos a largura e a altura da janela
janela.setSize(350, 150);
// define a posição da janela na tela
janela.setLocation(50, 50);
// define que ao fechar a janela, encerre a aplicação
janela.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
// mostramos a janela
janela.setVisible(true);
}
}
                                 Centraliza a janela
import java.awt.*;
import javax.swing.*;

public class Estudos extends JFrame{
 public Estudos() {
  super("Uso da classe JFrame");

        setSize(350, 250);
        setVisible(true);

        // centraliza a janela
        setLocationRelativeTo(null);
    }

    public static void main(String args[]){
      Estudos app = new Estudos();
      app.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    }
}
•
          Define um ícone para o aplicativo
/*
 Este exemplo mostra como definir um ícone
 para uma JFrame. Antes de testar certifique-se
 de ter uma imagem chamada icon.gif no diretório
 de execução do aplicativo.
*/

import java.awt.*;
import javax.swing.*;

public class Estudos extends JFrame{
 public Estudos() {
  super("A classe JFrame");

        // Define o ícone para a janela
        ImageIcon icone = new ImageIcon("icon.gif");
        setIconImage(icone.getImage());

        setSize(350, 250);
        setVisible(true);
    }

    public static void main(String args[]){
      Estudos app = new Estudos();
      app.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    }
}
                                             Maximixar a Janela
/*
 Este exemplo mostra como criar uma JFrame
 que é exibida inicialmente no modo maximizado.

Se quiser que a janela apareça maximizada somente
na vertical use MAXIMIZED_VERT. Se quiser que ela
seja maximizada na horizontal use MAXIMIZED_HORIZ.
*/

import java.awt.*;
import javax.swing.*;

public class Estudos extends JFrame{
 public Estudos() {
  super("A classe JFrame");

        // Define que a janela será mostrada inicialmente
        // maximizada
        this.setExtendedState(MAXIMIZED_BOTH);

        setSize(350, 250);
        setVisible(true);
    }

    public static void main(String args[]){
      Estudos app = new Estudos();
      app.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    }
}
                                                               Define uma Imagem de fundo

/*
 Este exemplo mostra como exibir uma imagem de fundo em uma JFrame. Note que os componentes são exibidos por cima da imagem. Antes de testar
 certifique-se de ter a imagem "fundo.jpg" no diretório da aplicação.
*/
import java.awt.*;
import javax.swing.*;

public class Estudos extends JFrame{
 public Estudos() {
  super("A classe JFrame");

     // Define o painel que conterá os
     // componentes do formulário
     JPanel painel = new JPanel();
     painel.setOpaque(false);
     painel.setLayout(new FlowLayout(FlowLayout.LEFT));
       JButton btn = new JButton("Clique Aqui");
     painel.add(btn);

     setGlassPane(painel);
     getGlassPane().setVisible(true);

     // Define a imagem de fundo
     Container c = getContentPane();
     c.setLayout(new BorderLayout());
     ImageIcon img = new ImageIcon("C:/Users/Renata/Pictures/pato.JPG");
     JLabel label = new JLabel(img);
     c.add(label, BorderLayout.CENTER);

     setSize(350, 250);
     setVisible(true);
    }
    public static void main(String args[]){
      Estudos app = new Estudos();
      app.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    }
}
Imagem de fundo
                    Definindo uma cor de fundo
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;

public class Estudos extends JFrame{
 public Estudos() {
  super("A classe JFrame");

        Container c = getContentPane();
        c.setLayout(new FlowLayout(FlowLayout.LEFT));

        // Define a cor de fundo
        c.setBackground(Color.CYAN);

        setSize(350, 250);
        setVisible(true);
    }

    public static void main(String args[]){
      Estudos app = new Estudos();
      app.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    }
}
             Tratamento de Eventos
Nas aplicações em que desejamos interpretar as ações do usuário (ao clicar
   em um botão, por exemplo), necessitamos implementar uma ou mais
   interfaces receptoras de eventos. Cada classe receptora de eventos trata
   de um evento diferente. Alguns exemplos:
● ActionListener – Eventos de ação como o clique do mouse sobre um
   botão, ao pressionar “ENTER” em um campo texto, etc.
● FocusListener – Eventos de foco, gerados quando um componente recebe
   ou perde o foco.
● MouseListener – eventos gerados pelo mouse quando é clicado, entra na
   área de um componente, etc.
● WindowListener – eventos de janelas, gerados quando uma janela é
   maximizada, minimizada, etc.
Neste módulo vamos aprender a utilizar a interface ActionListener. Esta
   classe exige a declaração do método actionPerformed, que é onde vamos
   definir o tratamento do evento gerado. Através do método
   addActionListener registramos os componentes que serão “observados”.
import javax.swing.*;                                     setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
import java.awt.*;
import java.awt.event.ActionEvent;                             pack();
import java.awt.event.ActionListener;                          setVisible(true);
                                                          //adiciona o botão para ser ouvido pelo listener
public class BorderLayoutTest extends JFrame implements        botao1.addActionListener( this);
      ActionListener                                        }
{                                                             //método responsável pela ação do evento
 JButton botao1;                                          public void actionPerformed(ActionEvent e)
   JButton botao2;                                          {
   JButton botao3;                                          if (e.getSource() == botao1){
   JButton botao4;                                          //se pressionado o botao2, mostramos uma
   JButton botao5;                                              mensagem
                                                            JOptionPane.showMessageDialog(null, "Norte da
  public BorderLayoutTest()
                                                                janela");
  {
                                                                }
     botao1 = new JButton("Botão 1");
                                                              }
     botao2 = new JButton("Botão 2");
                                                              public static void main(String args[])
     botao3 = new JButton("Botão 3");
                                                              {
     botao4 = new JButton("Botão 4");
                                                                new BorderLayoutTest();
     botao5 = new JButton("Botão 5");
                                                              }
          // Como o padrao de um JFrame é o
                                                          }
    // BorderLayout, simplesmente adicionamos
    // os componentes na tela
    getContentPane().add(botao1, BorderLayout.NORTH);
    getContentPane().add(botao2, BorderLayout.CENTER);
    getContentPane().add(botao3, BorderLayout.WEST);
    getContentPane().add(botao4, BorderLayout.SOUTH);
    getContentPane().add(botao5, BorderLayout.EAST);
                    JOptionPane
Utilizamos a classe JOptionPane para a inclusão de mensagens. Esta
   classe é especializada na geração de caixas de diálogo, isto é,
   pequenas janelas que fazem uma pergunta, avisam o usuário ou
   fornecem uma mensagem qualquer. Existem quatro tipos padrão de
   caixas de diálogo, sendo eles:
● MessageDialog – caixa de diálogo que apresenta uma mensagem,
   possibilitando acrescentar ícones de alerta ao usuário.
● ConfirmDialog – caixa de diálogo que além de emitir uma
   mensagem, possibilita ao usuário responder a uma pergunta.
● InputDialog – caixa de diálogo que além de emitir uma mensagem,
   permite a entrada de um texto.
● OptionDialog – caixa de diálogo que abrange os três tipos
   anteriores.
Apostila – pág 17
Pág 18

				
DOCUMENT INFO
Shared By:
Categories:
Tags:
Stats:
views:39
posted:9/12/2011
language:Portuguese
pages:19