Probleminhas com frames

2 respostas
D

E aí pessoal blz.

seguinte.Por que quando eu faço isso no frame principal funciona mas quando eu mando fazer de outro frame não.

javax.swing.table.DefaultTableModel modelo = new javax.swing.table.DefaultTableModel(dadosAgrup,new Object [] {"Intervalo", "Frequência", "FA", "FR", "FRA", "Média"});
        Tabela.setModel(modelo);

como faço para driblar esse problema.

2 Respostas

kinow

Cara, não tem como você postar o código que está usando? Normalmente apenas isso já funciona, não é muito comum ocorrer isso.

Abraços.

D

ta aí:
Foi feito no netbeans.

a classe principal.
/*
 * GUItrabcomp.java
 *
 * Created on 9 de Abril de 2006, 10:44
 */
package trabcomp;
import javax.swing.*;
/**
 *
 * @author  danimac13
 */
public class GUItrabcomp extends javax.swing.JFrame {
    public String dadosAgrup[][];
    public int linhas;
    public double dadosAgrupDbl[][];
    public double dadosnAgrup[];
    NewJFrame frame=new NewJFrame();//instancia o frame dos dados agrupados
    RascunhoEst estatistica=new RascunhoEst();
    /** Creates new form GUItrabcomp */
    public GUItrabcomp() {
        initComponents();
    }
    
    /** This method is called from within the constructor to
     * initialize the form.
     * WARNING: Do NOT modify this code. The content of this method is
     * always regenerated by the Form Editor.
     */
    // <editor-fold defaultstate="collapsed" desc=" Generated Code ">                          
    private void initComponents() {
        jMenuBar2 = new javax.swing.JMenuBar();
        jScrollPane1 = new javax.swing.JScrollPane();
        Tabela = new javax.swing.JTable();
        jMenuBar1 = new javax.swing.JMenuBar();
        jMenu1 = new javax.swing.JMenu();
        jMenuItem1 = new javax.swing.JMenuItem();
        jMenuItem2 = new javax.swing.JMenuItem();
        jMenuItem3 = new javax.swing.JMenuItem();
        jMenuItem4 = new javax.swing.JMenuItem();
        jMenu3 = new javax.swing.JMenu();
        jMenuItem6 = new javax.swing.JMenuItem();
        jMenuItem7 = new javax.swing.JMenuItem();
        jMenu2 = new javax.swing.JMenu();
        jMenuItem5 = new javax.swing.JMenuItem();

        setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);
        setTitle("Trabalho Computacional de Estat\u00edstica");
        Tabela.setModel(new javax.swing.table.DefaultTableModel(
            new Object [][] {
                {null, null, null, null, null, null},
                {null, null, null, null, null, null},
                {null, null, null, null, null, null},
                {null, null, null, null, null, null}
            },
            new String [] {
                "Intervalo", "Frequência", "FA", "FR", "FRA", "Média"
            }
        ));
        jScrollPane1.setViewportView(Tabela);

        jMenu1.setText("Arquivo");
        jMenuItem1.setText("Novo");
        jMenuItem1.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jMenuItem1ActionPerformed(evt);
            }
        });

        jMenu1.add(jMenuItem1);

        jMenuItem2.setText("Entrar com os Dados n\u00e3o Agrupados");
        jMenuItem2.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jMenuItem2ActionPerformed(evt);
            }
        });

        jMenu1.add(jMenuItem2);

        jMenuItem3.setText("Entrar com os Dados Agrupados");
        jMenuItem3.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jMenuItem3ActionPerformed(evt);
            }
        });

        jMenu1.add(jMenuItem3);

        jMenuItem4.setText("Sair");
        jMenuItem4.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jMenuItem4ActionPerformed(evt);
            }
        });

        jMenu1.add(jMenuItem4);

        jMenuBar1.add(jMenu1);

        jMenu3.setText("Calcular");
        jMenuItem6.setText("Gr\u00e1fico");
        jMenu3.add(jMenuItem6);

        jMenuItem7.setText("Outros");
        jMenu3.add(jMenuItem7);

        jMenuBar1.add(jMenu3);

        jMenu2.setText("Ajuda");
        jMenuItem5.setText("Sobre");
        jMenuItem5.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jMenuItem5ActionPerformed(evt);
            }
        });

        jMenu2.add(jMenuItem5);

        jMenuBar1.add(jMenu2);

        setJMenuBar(jMenuBar1);

        org.jdesktop.layout.GroupLayout layout = new org.jdesktop.layout.GroupLayout(getContentPane());
        getContentPane().setLayout(layout);
        layout.setHorizontalGroup(
            layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
            .add(layout.createSequentialGroup()
                .addContainerGap()
                .add(jScrollPane1, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, 402, Short.MAX_VALUE)
                .addContainerGap())
        );
        layout.setVerticalGroup(
            layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
            .add(layout.createSequentialGroup()
                .addContainerGap()
                .add(jScrollPane1, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, 314, Short.MAX_VALUE)
                .addContainerGap())
        );
        pack();
    }// </editor-fold>                        

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

    private void jMenuItem3ActionPerformed(java.awt.event.ActionEvent evt) {                                           
     frame.setVisible(true);//mostra o frame
    }                                          

    private void jMenuItem4ActionPerformed(java.awt.event.ActionEvent evt) {                                           
    System.exit(0);
    }                                          

    private void jMenuItem5ActionPerformed(java.awt.event.ActionEvent evt) {                                           
    JOptionPane.showMessageDialog(null,"Editor de Distribuição de Frequências\nversão 2006.1.1\nDesenvolvido por: Daniel Alves da Fonseca Maciel.\nFACULDADE COTEMIG (somente para fins didáticos)");
    }                                          

    private void jMenuItem2ActionPerformed(java.awt.event.ActionEvent evt) {                                           
    String dadosInit,receb="";
    int j=0;
    double vi,vs;
    String vet[]=new String[6];
    dadosInit=JOptionPane.showInputDialog("Digite os dados não agrupados separados por ; .");
    dadosnAgrup=new double[0];
    for(int i=0;i<dadosInit.length();i++)
        {
            if(dadosInit.charAt(i)!=';')
               receb+=dadosInit.charAt(i);
            else
            {
               double temp[]=dadosnAgrup; 
               dadosnAgrup=new double[dadosnAgrup.length+1];//aumenta a matriz de adjacencia
               System.arraycopy(temp,0,dadosnAgrup,0,temp.length);//aumenta a matriz de adjacencia
               dadosnAgrup[j]=Double.parseDouble(receb);
               receb="";
               j++;
            }
        }
        double temp[]=dadosnAgrup; 
        dadosnAgrup=new double[dadosnAgrup.length+1];//aumenta a matriz de adjacencia
        System.arraycopy(temp,0,dadosnAgrup,0,temp.length);//aumenta a matriz de adjacencia
        dadosnAgrup[j]=Double.parseDouble(receb);
        vi=Double.parseDouble(JOptionPane.showInputDialog("Qual será o menor valor:"));
        vs=Double.parseDouble(JOptionPane.showInputDialog("Qual será o maior valor:"));
        dadosAgrup=estatistica.distFreqnAgrup(vi,vs,dadosnAgrup);
        javax.swing.table.DefaultTableModel modelo = new javax.swing.table.DefaultTableModel(dadosAgrup,new Object [] {"Intervalo", "Frequência", "FA", "FR", "FRA", "Média"});
        Tabela.setModel(modelo);
    }                                          

    /**
     * @param args the command line arguments
     */
    public static void main(String args[]) {
        java.awt.EventQueue.invokeLater(new Runnable() {
            public void run() {
                new GUItrabcomp().setVisible(true);
            }
        });
    }
    
    // Variables declaration - do not modify                     
    public javax.swing.JTable Tabela;
    private javax.swing.JMenu jMenu1;
    private javax.swing.JMenu jMenu2;
    private javax.swing.JMenu jMenu3;
    private javax.swing.JMenuBar jMenuBar1;
    private javax.swing.JMenuBar jMenuBar2;
    private javax.swing.JMenuItem jMenuItem1;
    private javax.swing.JMenuItem jMenuItem2;
    private javax.swing.JMenuItem jMenuItem3;
    private javax.swing.JMenuItem jMenuItem4;
    private javax.swing.JMenuItem jMenuItem5;
    private javax.swing.JMenuItem jMenuItem6;
    private javax.swing.JMenuItem jMenuItem7;
    private javax.swing.JScrollPane jScrollPane1;
    // End of variables declaration                   
    
}
O novo Frame.
/*
 * NewJFrame.java
 *
 * Created on 27 de Abril de 2006, 21:17
 */

package trabcomp;

/**
 *
 * @author  danimac13
 */
public class NewJFrame extends javax.swing.JFrame {
    /** Creates new form NewJFrame */
    public String dadosAgrupStr[][];
    public double dadosAgrup[][];
    RascunhoEst estatistica = new RascunhoEst();
    public NewJFrame() {
        initComponents();
    }
    
    /** This method is called from within the constructor to
     * initialize the form.
     * WARNING: Do NOT modify this code. The content of this method is
     * always regenerated by the Form Editor.
     */
    // <editor-fold defaultstate="collapsed" desc=" Generated Code ">                          
    private void initComponents() {
        jScrollPane1 = new javax.swing.JScrollPane();
        tableDadosAgrup = new javax.swing.JTable();
        jButton1 = new javax.swing.JButton();
        jButton2 = new javax.swing.JButton();
        jButton3 = new javax.swing.JButton();

        setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);
        setTitle("Dados agrupados");
        tableDadosAgrup.setModel(new javax.swing.table.DefaultTableModel(
            new Object [][] {
                {null, null},
                {null, null},
                {null, null},
                {null, null}
            },
            new String [] {
                "Intervalo (N°s entre ;)", "Frequência"
            }
        ));
        jScrollPane1.setViewportView(tableDadosAgrup);

        jButton1.setText("OK");
        jButton1.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jButton1ActionPerformed(evt);
            }
        });

        jButton2.setText("Remover Linha");
        jButton2.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jButton2ActionPerformed(evt);
            }
        });

        jButton3.setText("Adicionar Linha");
        jButton3.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jButton3ActionPerformed(evt);
            }
        });

        org.jdesktop.layout.GroupLayout layout = new org.jdesktop.layout.GroupLayout(getContentPane());
        getContentPane().setLayout(layout);
        layout.setHorizontalGroup(
            layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
            .add(layout.createSequentialGroup()
                .addContainerGap()
                .add(layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
                    .add(layout.createSequentialGroup()
                        .add(jButton3)
                        .add(23, 23, 23)
                        .add(jButton2)
                        .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED, 31, Short.MAX_VALUE)
                        .add(jButton1)
                        .add(24, 24, 24))
                    .add(org.jdesktop.layout.GroupLayout.TRAILING, layout.createSequentialGroup()
                        .add(jScrollPane1, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, 376, Short.MAX_VALUE)
                        .addContainerGap())))
        );
        layout.setVerticalGroup(
            layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
            .add(org.jdesktop.layout.GroupLayout.TRAILING, layout.createSequentialGroup()
                .add(jScrollPane1, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, 257, Short.MAX_VALUE)
                .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED)
                .add(layout.createParallelGroup(org.jdesktop.layout.GroupLayout.BASELINE)
                    .add(jButton3)
                    .add(jButton2)
                    .add(jButton1))
                .addContainerGap())
        );
        pack();
    }// </editor-fold>                        

    private void jButton2ActionPerformed(java.awt.event.ActionEvent evt) {                                         
        int[] l = tableDadosAgrup.getSelectedRows();//captura as linhas selecionadas
        javax.swing.table.DefaultTableModel dtm = (javax.swing.table.DefaultTableModel)tableDadosAgrup.getModel();//pega o modelo da tabela
        for(int i = (l.length-1); i >= 0; --i) {
            dtm.removeRow(l[i]);//remove todas as linhas selecionadas
        }
    }                                        

    private void jButton3ActionPerformed(java.awt.event.ActionEvent evt) {                                         
        javax.swing.table.DefaultTableModel dtm =(javax.swing.table.DefaultTableModel)tableDadosAgrup.getModel();//instancia o modelo da tabela
        dtm.addRow(new Object[]{null,null});//adiciona uma linha na tabela
    }                                        

    private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {                                         
        int linhas = tableDadosAgrup.getRowCount();//pega o num de linhas da coluna
        int a;
        String teste="",receb="";
        GUItrabcomp princ = new GUItrabcomp();
        dadosAgrupStr= new String[linhas][7];//Inicializa a variavel dadosAgrup
        dadosAgrup= new double[linhas][3];
        for(int i=0;i<linhas;i++)
        {
        a=0;
        dadosAgrupStr[i][0]=String.valueOf(tableDadosAgrup.getValueAt(i,0));
        teste=dadosAgrupStr[i][0].toString();
        for(int j=0;j<teste.length();j++)
        {
            if(teste.charAt(j)!=';')
            {
                receb+=teste.charAt(j);
            }
            else
            {
               dadosAgrup[i][a]=Double.parseDouble(receb);
               receb="";
               a++;         
            }
        }
        dadosAgrup[i][a]=Double.parseDouble(receb);
        receb="";
        dadosAgrupStr[i][1]=String.valueOf(tableDadosAgrup.getValueAt(i,1));
        dadosAgrup[i][2]=Double.parseDouble(dadosAgrupStr[i][1].toString());
        }
        princ.dadosAgrup=estatistica.distFreq(dadosAgrupStr,dadosAgrup,linhas);
        princ.dadosAgrupDbl=dadosAgrup;
        princ.linhas=linhas;
        setVisible(false);
    }                                        
    
    /**
     * @param args the command line arguments
     */

    
    // Variables declaration - do not modify                     
    private javax.swing.JButton jButton1;
    private javax.swing.JButton jButton2;
    private javax.swing.JButton jButton3;
    private javax.swing.JScrollPane jScrollPane1;
    private javax.swing.JTable tableDadosAgrup;
    // End of variables declaration                   
    
}

A classe de calculos.

/*
 * RascunhoEst.java
 *
 * Created on 29 de Abril de 2006, 23:07
 *
 * To change this template, choose Tools | Template Manager
 * and open the template in the editor.
 */

package trabcomp;

/**
 *
 * @author danimac13
 */
public class RascunhoEst {
    	public static int K=0;
	public static int Freq[];
	public static int Amp=0;
	public static int N=0;
	public static int Num[];
    /** Creates a new instance of RascunhoEst */

    public static String[][] distFreq(String distFreq[][], double tablDbl[][],int linhas)
    {
        double soma=0.0,media,freqRelat,freqRelaAcuml=0.0;
        for(int i=0;i<linhas;i++)
        {
            soma+=tablDbl[i][2];
            distFreq[i][2]=String.valueOf(soma);
            distFreq[i][5]=String.valueOf(((tablDbl[i][1]-tablDbl[i][0])/2)+tablDbl[i][0]);
            
        }
        for(int i=0;i<linhas;i++)
        {
            freqRelat=(tablDbl[i][2]*100)/soma;
            freqRelaAcuml+=freqRelat;
            distFreq[i][3]=String.valueOf(freqRelat);
            distFreq[i][4]=String.valueOf(freqRelaAcuml);
        }
        for(int i=0;i<linhas;i++)
        {
            System.out.println(distFreq[i][0]+" "+distFreq[i][1]+" "+distFreq[i][2]+" "+distFreq[i][3]+" "+distFreq[i][4]+" "+distFreq[i][5]+"\n");
        }
        
        return distFreq;
    }
    public static String[][] distFreqnAgrup(double vi,double vs,double dadosnAgrup[])
    {
        int linhas,soma=0;
        double amplitude;
        amplitude=(vs-vi)/(int)Math.sqrt(dadosnAgrup.length);
        linhas=(int)((vs-vi)/amplitude);
        String distFreqnAgrup[][]=new String[linhas][6];
        double distFreqnAgrupDbl[][]=new double[linhas][3];
        for(int i=0;i<linhas;i++)
        {
            vs=vi+amplitude;
            distFreqnAgrup[i][0]=vi+";"+vs;
            distFreqnAgrupDbl[i][0]=vi;
            distFreqnAgrupDbl[i][1]=vs;
            for(int j=0;j<dadosnAgrup.length;j++)
            {
                if(dadosnAgrup[j]<=vs&&dadosnAgrup[j]>vi)
                {
                    soma++;
                    distFreqnAgrup[i][1]=String.valueOf(soma);
                    distFreqnAgrupDbl[i][2]++;
                }
            }
            soma=0;
            vi=vs;
        }
        distFreqnAgrup=distFreq(distFreqnAgrup,distFreqnAgrupDbl,linhas);
        return distFreqnAgrup;
    }
}
Criado 1 de maio de 2006
Ultima resposta 1 de mai. de 2006
Respostas 2
Participantes 2