JPanel voltando ao estado inicial quando clico nele

Olá pessoal,

Tenho um JPanel contendo um gráfico. Eu consigo até gerar outros gráficos, mas quando clico no meu JPanel ele volta ao estado inicial(de quando ele foi aberto). Se eu coloco uma data inválida, ele também volta meu gráfico para o “estado inicial”.

Alguma dica? To fazendo arte em algum canto mas sou muito noob ainda e não consigo encontrar onde
Tem muito lixo que o netbeans ta gerando no meio :confused:

[code]/*

  • To change this template, choose Tools | Templates
  • and open the template in the editor.
    */

/*

  • JanelaDoApplet.java
  • Created on 28/09/2010, 14:23:02
    */
    package br.ceptro.simet.analyzer.applet;

import java.awt.Color;
import java.awt.event.ActionEvent;
import java.io.File;
import java.io.IOException;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Date;
import javax.swing.JFileChooser;
import org.jfree.chart.ChartPanel;
import org.jfree.chart.ChartUtilities;
import org.jfree.chart.JFreeChart;
import org.jfree.ui.DateChooserPanel;

/**
*

  • @author ricardo
    */
    public class JanelaDoApplet extends javax.swing.JApplet {

    ChartPanel chartPanel;
    JFreeChart chart;
    DateChooserPanel primeiroCalendario, segundoCalendario;

    /** Initializes the applet JanelaDoInocApplet */
    public void init() {
    try {
    java.awt.EventQueue.invokeAndWait(new Runnable() {

             public void run() {
                 initComponents();
                 listaDasOperadorasNoSwing.setSelectedIndex(1);
                 String dataDeHojeFormatada = obterDataDeHojeFormatada();
                 inicioSwing.setText(dataDeHojeFormatada);
                 fimSwing.setText(dataDeHojeFormatada);
                 criarPaineisDeCalendarios();
                 obterChart();
                 initChartPanel(chart);
                 mensagemDeErro.setVisible(false);
    
    
             }
         });
     } catch (Exception ex) {
         ex.printStackTrace();
     }
    

    }

    private String obterDataDeHojeFormatada() {
    SimpleDateFormat df = new SimpleDateFormat(“dd/MM/yy”);
    Date d = new Date(System.currentTimeMillis());
    return df.format(d);
    }

    private String obterDataFormatada(Date date) {
    SimpleDateFormat df = new SimpleDateFormat(“dd/MM/yy”);
    Date d = new Date(date.getTime());
    return df.format(d);
    }

    private void obterChart() {
    ContatoDoServlet contato = new ContatoDoServlet();
    ArrayList operadorasList = new ArrayList();
    Object[] operadoras = listaDasOperadorasNoSwing.getSelectedValues();
    for(int i = 0; i< operadoras.length; i++){
    operadorasList.add((String)operadoras[i]);
    }

     String dataInicio = inicioSwing.getText();
     String dataFim = fimSwing.getText();
     chart = contato.obterObjetoDoServlet(operadorasList, dataInicio, dataFim);
    

    }

    private void criarPaineisDeCalendarios() {
    primeiroCalendario = new DateChooserPanel() {

         @Override
         public void actionPerformed(ActionEvent e) {
             super.actionPerformed(e);
             inicioSwing.setText(obterDataFormatada(this.getDate()));
         }
     };
     segundoCalendario = new DateChooserPanel() {
    
         @Override
         public void actionPerformed(ActionEvent e) {
             super.actionPerformed(e);
             fimSwing.setText(obterDataFormatada(this.getDate()));
         }
     };
    
     initDateChooserPanel(primeiroCalendario, 300, 55);
     primeiroCalendario.setVisible(false);
    
     initDateChooserPanel(segundoCalendario, 300, 55);
     segundoCalendario.setVisible(false);
    

    }

    private void initChartPanel(JFreeChart chart) {

     chartPanel = new ChartPanel(chart);
     chartPanel.setPopupMenu(null);
    
     javax.swing.GroupLayout jPanel1Layout = new javax.swing.GroupLayout(chartPanel);
     chartPanel.setLayout(jPanel1Layout);
     jPanel1Layout.setHorizontalGroup(
             jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING).addGap(0, 100, Short.MAX_VALUE));
     jPanel1Layout.setVerticalGroup(
             jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING).addGap(0, 100, Short.MAX_VALUE));
    
     getContentPane().add(chartPanel);
     chartPanel.setBounds(10, 250, 800, 600);
    

    }

    private void initDateChooserPanel(DateChooserPanel dateChooserPanel, int x, int y) {

     getContentPane().add(dateChooserPanel);
    
     dateChooserPanel.setBackground(Color.yellow);
     dateChooserPanel.setBounds(x, y, 200, 150);
    

    }

    /** This method is called from within the init() method to

    • initialize the form.

    • WARNING: Do NOT modify this code. The content of this method is

    • always regenerated by the Form Editor.
      */
      @SuppressWarnings(“unchecked”)
      //
      private void initComponents() {

      jLabel2 = new javax.swing.JLabel();
      inicioSwing = new javax.swing.JFormattedTextField();
      toggleCalendarioInicio = new javax.swing.JToggleButton();
      jLabel3 = new javax.swing.JLabel();
      fimSwing = new javax.swing.JFormattedTextField();
      toggleCalendarioFim = new javax.swing.JToggleButton();
      jButton1 = new javax.swing.JButton();
      botao = new javax.swing.JButton();
      mensagemDeErro = new javax.swing.JLabel();
      jScrollPane1 = new javax.swing.JScrollPane();

      getContentPane().setLayout(null);

      jLabel2.setFont(new java.awt.Font(“DejaVu Sans”, 0, 11));
      jLabel2.setText(“Início”);
      getContentPane().add(jLabel2);
      jLabel2.setBounds(20, 10, 29, 14);

      inicioSwing.setFormatterFactory(new javax.swing.text.DefaultFormatterFactory(new javax.swing.text.DateFormatter(java.text.DateFormat.getDateInstance(java.text.DateFormat.SHORT))));
      inicioSwing.setFont(new java.awt.Font(“DejaVu Sans”, 0, 11));
      inicioSwing.addMouseListener(new java.awt.event.MouseAdapter() {
      public void mouseClicked(java.awt.event.MouseEvent evt) {
      inicioSwingMouseClicked(evt);
      }
      });
      inicioSwing.addActionListener(new java.awt.event.ActionListener() {
      public void actionPerformed(java.awt.event.ActionEvent evt) {
      inicioSwingActionPerformed(evt);
      }
      });
      inicioSwing.addFocusListener(new java.awt.event.FocusAdapter() {
      public void focusGained(java.awt.event.FocusEvent evt) {
      inicioSwingFocusGained(evt);
      }
      public void focusLost(java.awt.event.FocusEvent evt) {
      inicioSwingFocusLost(evt);
      }
      });
      getContentPane().add(inicioSwing);
      inicioSwing.setBounds(20, 30, 110, 24);

      toggleCalendarioInicio.setFont(new java.awt.Font(“DejaVu Sans”, 0, 11));
      toggleCalendarioInicio.addChangeListener(new javax.swing.event.ChangeListener() {
      public void stateChanged(javax.swing.event.ChangeEvent evt) {
      toggleCalendarioInicioStateChanged(evt);
      }
      });
      getContentPane().add(toggleCalendarioInicio);
      toggleCalendarioInicio.setBounds(140, 30, 12, 12);

      jLabel3.setFont(new java.awt.Font(“DejaVu Sans”, 0, 11));
      jLabel3.setText(“Fim”);
      getContentPane().add(jLabel3);
      jLabel3.setBounds(190, 10, 20, 14);

      fimSwing.setFormatterFactory(new javax.swing.text.DefaultFormatterFactory(new javax.swing.text.DateFormatter(java.text.DateFormat.getDateInstance(java.text.DateFormat.SHORT))));
      fimSwing.setFont(new java.awt.Font(“DejaVu Sans”, 0, 11));
      getContentPane().add(fimSwing);
      fimSwing.setBounds(190, 30, 110, 24);

      toggleCalendarioFim.setFont(new java.awt.Font(“DejaVu Sans”, 0, 11));
      toggleCalendarioFim.setMaximumSize(new java.awt.Dimension(10, 10));
      toggleCalendarioFim.setMinimumSize(new java.awt.Dimension(10, 10));
      toggleCalendarioFim.addChangeListener(new javax.swing.event.ChangeListener() {
      public void stateChanged(javax.swing.event.ChangeEvent evt) {
      toggleCalendarioFimStateChanged(evt);
      }
      });
      toggleCalendarioFim.addActionListener(new java.awt.event.ActionListener() {
      public void actionPerformed(java.awt.event.ActionEvent evt) {
      toggleCalendarioFimActionPerformed(evt);
      }
      });
      getContentPane().add(toggleCalendarioFim);
      toggleCalendarioFim.setBounds(310, 30, 12, 12);

      jButton1.setFont(new java.awt.Font(“DejaVu Sans”, 0, 11));
      jButton1.setText(“Salvar”);
      jButton1.addMouseListener(new java.awt.event.MouseAdapter() {
      public void mouseClicked(java.awt.event.MouseEvent evt) {
      jButton1MouseClicked(evt);
      }
      });
      getContentPane().add(jButton1);
      jButton1.setBounds(720, 30, 80, 26);

      botao.setFont(new java.awt.Font(“DejaVu Sans”, 0, 11));
      botao.setText(“Gerar novo gráfico”);
      botao.addMouseListener(new java.awt.event.MouseAdapter() {
      public void mouseClicked(java.awt.event.MouseEvent evt) {
      botaoMouseClicked(evt);
      }
      });
      getContentPane().add(botao);
      botao.setBounds(350, 30, 170, 26);

      mensagemDeErro.setForeground(new java.awt.Color(239, 22, 27));
      mensagemDeErro.setText(“Erro: Início > Fim”);
      getContentPane().add(mensagemDeErro);
      mensagemDeErro.setBounds(370, 10, 130, 17);

      listaDasOperadorasNoSwing.setModel(new javax.swing.AbstractListModel() {
      String[] strings = {>>>>>>>>>>>>>ESTA PARTE FOI REMOVIDA POR QUESTÕES DE CONFIDENCIALIDADE <<<<<<<<<<<<<<<<<<<<};
      public int getSize() { return strings.length; }
      public Object getElementAt(int i) { return strings[i]; }
      });
      jScrollPane1.setViewportView(listaDasOperadorasNoSwing);

      getContentPane().add(jScrollPane1);
      jScrollPane1.setBounds(20, 60, 200, 150);
      }//
      //Gera solicita e obtem um novo gráfico.
      private void botaoMouseClicked(java.awt.event.MouseEvent evt) {
      //Proteção no lado cliente (existe outra no lado servidor)
      boolean ok = verSeADataEstaOk();
      if (ok) {
      //Parte principal
      obterChart();
      if (mensagemDeErro.isVisible()) {
      mensagemDeErro.setVisible(false);
      }
      } else {
      if (!mensagemDeErro.isVisible()) {
      mensagemDeErro.setVisible(true);
      }
      }
      initChartPanel(chart);

    }

    private void inicioSwingMouseClicked(java.awt.event.MouseEvent evt) {
    }

    private void inicioSwingFocusGained(java.awt.event.FocusEvent evt) {
    }

    private void inicioSwingFocusLost(java.awt.event.FocusEvent evt) {
    }

    private void toggleCalendarioInicioStateChanged(javax.swing.event.ChangeEvent evt) {
    if (segundoCalendario.isVisible()) {
    toggleCalendarioFim.doClick();
    }
    primeiroCalendario.setVisible(!primeiroCalendario.isVisible());
    }

    private void toggleCalendarioFimStateChanged(javax.swing.event.ChangeEvent evt) {
    if (primeiroCalendario.isVisible()) {
    toggleCalendarioInicio.doClick();
    }
    segundoCalendario.setVisible(!segundoCalendario.isVisible());
    }

    private void toggleCalendarioFimActionPerformed(java.awt.event.ActionEvent evt) {
    // TODO add your handling code here:
    }

    private void jButton1MouseClicked(java.awt.event.MouseEvent evt) {
    try {
    JFileChooser fileChooser = new JFileChooser();
    fileChooser.setFileSelectionMode(JFileChooser.DIRECTORIES_ONLY);
    int ok = fileChooser.showSaveDialog(this);
    if (ok == JFileChooser.APPROVE_OPTION) {
    File file = fileChooser.getSelectedFile();
    ChartUtilities.saveChartAsJPEG(file, chart, 1200, 900);
    }
    } catch (IOException e) {
    System.out.println(“Não foi possível salvar o arquivo”);
    }
    }

    private void inicioSwingActionPerformed(java.awt.event.ActionEvent evt) {
    // TODO add your handling code here:
    }
    // Variables declaration - do not modify
    private javax.swing.JButton botao;
    private javax.swing.JFormattedTextField fimSwing;
    private javax.swing.JFormattedTextField inicioSwing;
    private javax.swing.JButton jButton1;
    private javax.swing.JLabel jLabel2;
    private javax.swing.JLabel jLabel3;
    private javax.swing.JScrollPane jScrollPane1;
    private final javax.swing.JList listaDasOperadorasNoSwing = new javax.swing.JList();
    private javax.swing.JLabel mensagemDeErro;
    private javax.swing.JToggleButton toggleCalendarioFim;
    private javax.swing.JToggleButton toggleCalendarioInicio;
    // End of variables declaration

    private boolean verSeADataEstaOk() {
    Date inicio;
    Date fim;
    SimpleDateFormat df = new SimpleDateFormat(“dd/MM/yy”);
    try {
    inicio = df.parse(inicioSwing.getText());
    fim = df.parse(fimSwing.getText());
    } catch (ParseException ex) {
    fim = new Date();
    inicio = new Date();
    }
    if(inicio.getTime() <= fim.getTime()){
    return true;
    }else{
    return false;
    }

    }
    }
    [/code]