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;
}
}