Monday, November 11, 2013

Treinamento Java 2 Básico - Capítulo 2


Sessão 4:

Antes de iniciarmos nos applets temos que fazer a seguinte configuração no painel de controle:


Feito isso podemos dar prosseguimento nos exemplos utilizando applets.

  1. /*
  2.  * To change this template, choose Tools | Templates
  3.  * and open the template in the editor.
  4.  */
  5. package visao;

  6. import java.applet.Applet;
  7. import java.awt.Graphics;

  8. /**
  9.  *
  10.  * @author Paulo Henrique Cayres
  11.  */
  12. public class ExemploApplet extends Applet {
  13.     @Override
  14.     public void init( ){
  15.         // Inicializa a applet
  16.     }
  17.     @Override
  18.     public void start( ){
  19.         // Dispara a execução de uma applet
  20.     }
  21.     @Override
  22.     public void stop( ){
  23.         // Pára a execução de uma applet
  24.     }
  25.     @Override
  26.     public void destroy( ){
  27.         // Destrói definitivamente uma applet
  28.     }
  29.     @Override
  30.     public void paint(Graphics g){
  31.         //...
  32.     }
  33. }




xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

  1. /*
  2.  * To change this template, choose Tools | Templates
  3.  * and open the template in the editor.
  4.  */
  5. package visao;

  6. import java.applet.Applet;
  7. import java.awt.Color;
  8. import java.awt.Graphics;

  9. /**
  10.  *
  11.  * @author Paulo Henrique Cayres
  12.  */
  13. public class ExemploApplet02 extends Applet{
  14.     
  15.     private int x,y,tam;
  16.     
  17.     /**
  18.      * Faz o papel do construtor
  19.      */
  20.     @Override
  21.     public void init( ){
  22.         x = 10; y = 10; tam = 0;
  23.     }
  24.     
  25.     /**
  26.      * Ativado logo após init e toda a vez que a applet for revisitado
  27.      */
  28.     @Override
  29.     public void start( ){
  30.         tam += 5;
  31.     }
  32.     
  33.     /**
  34.      * Ativado sempre que a applet pode parar de executar (não está visível)
  35.      * @param g 
  36.      */
  37.     @Override
  38.     public void paint(Graphics g){
  39.         g.setColor(new Color(200,123,212));
  40.         g.fillRect(x,y,tam,10);
  41.     }
  42.     @Override
  43.     public void stop(){
  44.     }
  45. }


xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

  1. /*
  2.  * To change this template, choose Tools | Templates
  3.  * and open the template in the editor.
  4.  */
  5. package visao;

  6. import java.applet.AppletContext;
  7. import java.applet.AudioClip;
  8. import java.net.MalformedURLException;
  9. import java.net.URL;
  10. import javax.swing.JApplet;

  11. /**
  12.  *
  13.  * @author Paulo Henrique Cayres
  14.  */
  15. public class ExemploAudioApplet extends JApplet {
  16.     
  17.     private AudioClip clip;
  18.     private AppletContext context;
  19.     public void init()
  20.     {
  21.        context = this.getAppletContext();
  22.        String audioURL = this.getParameter("audio");
  23.        if(audioURL == null)
  24.        {
  25.           audioURL = "audio\\spacemusic.au";
  26.        }
  27.        try
  28.        {
  29.           URL url = new URL(this.getDocumentBase(), audioURL);
  30.           clip = context.getAudioClip(url);
  31.           clip.play();
  32.        }catch(MalformedURLException e)
  33.        {
  34.           e.printStackTrace();
  35.           context.showStatus("Could not load audio file!");
  36.        }
  37.     }
  38.    
  39.     public void start()
  40.     {
  41.        if(clip != null)
  42.        {
  43.           clip.loop();
  44.        }
  45.     }
  46.     
  47.     public void stop()
  48.     {
  49.        if(clip != null)
  50.        {
  51.           clip.stop();
  52.        }
  53.     }    
  54. }


xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

  1. /*
  2.  * To change this template, choose Tools | Templates
  3.  * and open the template in the editor.
  4.  */
  5. package visao;

  6. import java.awt.Graphics;
  7. import java.awt.event.MouseEvent;
  8. import java.awt.event.MouseListener;
  9. import javax.swing.JApplet;

  10. /**
  11.  *
  12.  * @author Paulo Henrique Cayres
  13.  */
  14. public class ExemploControleEventoMouseApplet extends JApplet implements MouseListener {

  15.     StringBuffer strBuffer;

  16.     public void init() {
  17. addMouseListener(this);
  18. strBuffer = new StringBuffer();
  19.         addItem("initializing the apple ");
  20.     }

  21.     public void start() {
  22.         addItem("starting the applet ");
  23.     }

  24.     public void stop() {
  25.         addItem("stopping the applet ");
  26.     }

  27.     public void destroy() {
  28.         addItem("unloading the applet");
  29.     }

  30.     void addItem(String word) {
  31.         System.out.println(word);
  32.         strBuffer.append(word);
  33.         repaint();
  34.     }

  35.     public void paint(Graphics g) {
  36. //Draw a Rectangle around the applet's display area.
  37.         g.drawRect(0, 0, 
  38.    getWidth() - 1,
  39.    getHeight() - 1);

  40. //display the string inside the rectangle.
  41.         g.drawString(strBuffer.toString(), 10, 20);
  42.     }
  43.     
  44.     @Override
  45.     public void mouseClicked(MouseEvent e) {
  46.         addItem("mouse clicked! ");
  47.     }

  48.     @Override
  49.     public void mousePressed(MouseEvent e) {

  50.     }

  51.     @Override
  52.     public void mouseReleased(MouseEvent e) {

  53.     }

  54.     @Override
  55.     public void mouseEntered(MouseEvent e) {
  56.         addItem("mouse entered! ");
  57.     }

  58.     @Override
  59.     public void mouseExited(MouseEvent e) {
  60.         addItem("mouse exited! ");
  61.     }
  62.     
  63. }



xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

  1. /*
  2.  * To change this template, choose Tools | Templates
  3.  * and open the template in the editor.
  4.  */
  5. package visao;

  6. import java.applet.AppletContext;
  7. import java.awt.Graphics;
  8. import java.awt.Image;
  9. import java.net.MalformedURLException;
  10. import java.net.URL;
  11. import javax.swing.JApplet;

  12. /**
  13.  *
  14.  * @author Paulo Henrique Cayres
  15.  */
  16. public class ExemploImgApplet extends JApplet {

  17.     private Image image;
  18.     private AppletContext context;

  19.     public void init()
  20.     {

  21.         context = this.getAppletContext();
  22.         System.out.println(context);
  23.         String imageURL = this.getParameter("image");
  24.         if(imageURL == null)
  25.         {
  26.            imageURL = "lock.png";
  27.         }
  28.         try
  29.         {
  30.            URL url = new URL(this.getDocumentBase(), imageURL);
  31.            image = context.getImage(url);
  32.         }catch(MalformedURLException e)
  33.         {
  34.            e.printStackTrace();
  35.            // Display in browser status bar
  36.            context.showStatus("Could not load image!");
  37.         }
  38.      }
  39.     
  40.     public void paint(Graphics g)
  41.     {
  42.        context.showStatus("Visualizando image");
  43.        g.drawImage(image, 50, 50, 16, 16, null);
  44.        repaint();
  45.     }      
  46.     
  47. }





xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

  1. /*
  2.  * To change this template, choose Tools | Templates
  3.  * and open the template in the editor.
  4.  */
  5. package visao;

  6. import java.awt.Color;
  7. import java.awt.FlowLayout;
  8. import java.awt.event.ActionEvent;
  9. import java.awt.event.ActionListener;
  10. import java.awt.event.KeyEvent;
  11. import javax.swing.JApplet;
  12. import javax.swing.JButton;
  13. import javax.swing.JLabel;
  14. import javax.swing.JPanel;
  15. import javax.swing.JTextField;
  16. import modelo.Mensagem;

  17. /**
  18.  *
  19.  * @author Instrutor
  20.  */
  21. public class ExemploJAppletGUI extends JApplet {
  22.     
  23.     private JLabel lNome;
  24.     private JTextField tfNome;
  25.     private JButton jbMensagem;
  26.     private JPanel painel;
  27.     
  28.     private Mensagem m;

  29.     /**
  30.      * Initialization method that will be called after the applet is loaded into
  31.      * the browser.
  32.      */
  33.     public void init() {
  34.         // TODO start asynchronous download of heavy resources
  35.         painel = new JPanel();
  36.         painel.setBackground(Color.WHITE);
  37.         painel.setLayout(new FlowLayout());
  38.         
  39.         lNome = new JLabel("Digite seu nome: ");
  40.         painel.add(lNome);
  41.         
  42.         tfNome = new JTextField(15);
  43.         painel.add(tfNome);
  44.         
  45.         jbMensagem = new JButton("Mensagem");
  46.         jbMensagem.setMnemonic(KeyEvent.VK_M);
  47.         jbMensagem.addActionListener(new ActionListener() {

  48.             @Override
  49.             public void actionPerformed(ActionEvent ae) {
  50.                 m = new Mensagem(tfNome.getText());
  51.                 javax.swing.JOptionPane.showMessageDialog(null, m.getMensagem());
  52.             }
  53.         });
  54.         painel.add(jbMensagem);
  55.         
  56.         add(painel);
  57.     }
  58.     // TODO overwrite start(), stop() and destroy() methods
  59. }



xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

Atividades Práticas - Sessão 4


  1. /*
  2.  * To change this template, choose Tools | Templates
  3.  * and open the template in the editor.
  4.  */
  5. package visao;

  6. import javax.swing.JApplet;

  7. /**
  8.  *
  9.  * @author Instrutor
  10.  */
  11. public class Exercicio02 extends JApplet {
  12.     
  13.     GUIPessoa guiPessoa;

  14.     /**
  15.      * Initialization method that will be called after the applet is loaded into
  16.      * the browser.
  17.      */
  18.     public void init() {
  19.         // TODO start asynchronous download of heavy resources
  20.         
  21.         guiPessoa = new GUIPessoa();
  22.         add(guiPessoa);
  23.     }
  24.     // TODO overwrite start(), stop() and destroy() methods
  25. }


GuiPessoa:



  1. /*
  2.  * To change this template, choose Tools | Templates
  3.  * and open the template in the editor.
  4.  */
  5. package visao;

  6. import controle.ControlePessoa;
  7. import modelo.Pessoa;

  8. /**
  9.  *
  10.  * @author Instrutor
  11.  */
  12. public class GUIPessoa extends javax.swing.JPanel {

  13.     /**
  14.      * Creates new form GUIPessoa
  15.      */
  16.     public GUIPessoa() {
  17.         initComponents();
  18.         cPessoas = new ControlePessoa();
  19.     }

  20.     /**
  21.      * This method is called from within the constructor to initialize the form.
  22.      * WARNING: Do NOT modify this code. The content of this method is always
  23.      * regenerated by the Form Editor.
  24.      */
  25.     @SuppressWarnings("unchecked")                       

  26.     private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {                                         
  27.         // TODO add your handling code here:
  28.         Pessoa p = new Pessoa(jTextField1.getText(),Integer.parseInt(jTextField2.getText()));
  29.         cPessoas.addPessoa(p);
  30.         jTextField1.setText("");
  31.         jTextField2.setText("");
  32.         jTextField1.requestFocus();
  33.     }                                        

  34.     private void jButton2ActionPerformed(java.awt.event.ActionEvent evt) {                                         
  35.         // TODO add your handling code here:
  36.         Pessoa p = cPessoas.getPessoa(jTextField1.getText());
  37.         if(p != null){
  38.             jTextField2.setText(String.valueOf(p.getIdade()));
  39.             jTextField1.requestFocus();
  40.         }
  41.         else{
  42.             javax.swing.JOptionPane.showMessageDialog(null, "Objeto não cadastrado", "Mensagem", javax.swing.JOptionPane.INFORMATION_MESSAGE);
  43.             jTextField1.setText("");
  44.             jTextField2.setText("");
  45.             jTextField1.requestFocus();
  46.         }
  47.     }                                        

  48.     private void jButton3ActionPerformed(java.awt.event.ActionEvent evt) {                                         
  49.         // TODO add your handling code here:
  50.         jTextArea1.setText(cPessoas.ordenaPorNome());
  51.     }                                        

  52.     // Variables declaration - do not modify                     
  53.     private javax.swing.JButton jButton1;
  54.     private javax.swing.JButton jButton2;
  55.     private javax.swing.JButton jButton3;
  56.     private javax.swing.JLabel jLabel1;
  57.     private javax.swing.JLabel jLabel2;
  58.     private javax.swing.JLabel jLabel3;
  59.     private javax.swing.JScrollPane jScrollPane1;
  60.     private javax.swing.JTextArea jTextArea1;
  61.     private javax.swing.JTextField jTextField1;
  62.     private javax.swing.JTextField jTextField2;
  63.     // End of variables declaration                   

  64.     private ControlePessoa cPessoas;
  65. }


  1. /*
  2.  * To change this template, choose Tools | Templates
  3.  * and open the template in the editor.
  4.  */
  5. package controle;

  6. import java.util.ArrayList;
  7. import java.util.Collections;
  8. import java.util.HashMap;
  9. import modelo.Pessoa;

  10. /**
  11.  *
  12.  * @author Paulo Henrique Cayres
  13.  */
  14. public class ControlePessoa {
  15.     
  16.     private ArrayList<Pessoa> pessoas = new ArrayList<>();
  17.     
  18.     public void addPessoa(Pessoa p){
  19.         pessoas.add(p);
  20.     }
  21.     
  22.     public Pessoa getPessoa(String nome){
  23.         HashMap<String, Pessoa> p = new HashMap<String, Pessoa>();
  24.         for(Pessoa temp: pessoas)
  25.             p.put(temp.getNome(), temp);
  26.         
  27.         return p.get(nome);
  28.     }
  29.     
  30.     public String ordenaPorNome(){
  31.         String retorno="";
  32.         
  33.         Collections.sort(pessoas);
  34.         for(Pessoa temp: pessoas)
  35.             retorno += temp.getNome()+"\n";
  36.         
  37.         return retorno;
  38.     }
  39. }


Ao se digitar o nome Renato e clicar em consultar será exibido o nome e a idade:


Ao se clicar em consultar, mas não for digitado nada na caixa de texto irá mostrar mensagem de objeto não cadastrado:


Ao se salvar os dados e se clicar em listar irá mostrar no campo textarea abaixo:




xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

No comments:

Post a Comment