java.lang.ArrayIndexOutOfBoundsException: 2
bem, estou meio enrolado para fazer isso, preciso fazer uma classe que calcule a media de n numeros, entao primeiro, nao sei como declarar um vetor dinamico, e ai inicializei com 2 para testes, mas quando preencho 2 posicoes aparecem o resultado mas vem com o erro acima…
abaixo segue o codigo, se puderem me dar uma força agradeço…
import javax.swing.<em>;
import java.awt.</em>;
import java.awt.event.*;
public class Estatistica extends JFrame implements ActionListener, FocusListener{
JLabel lblValor = new JLabel(“Informe o valor:”);
JLabel lblResult = new JLabel(“Resultado:”);
JLabel lblDesvio = new JLabel();
JLabel lblMedia = new JLabel();
JTextField txtValor = new JTextField(12);
JButton cmdArmazenar = new JButton(“Armazenar”);
JButton cmdCalcular = new JButton(“Calcular”);
JButton cmdSair = new JButton(“Sair”);
//JTextArea txtArea = new JTextArea(10,25);
static int cont=0;
int [] vetor = new int[2];
public Estatistica(){
// criando container
Container c = getContentPane();
// criando layout padrão
c.setLayout(new FlowLayout());
c.add(lblValor);
c.add(txtValor);
c.add(cmdArmazenar);
c.add(cmdCalcular);
c.add(cmdSair);
c.add(lblResult);
c.add(lblDesvio);
c.add(lblMedia);
//JScrollPane sp = new JScrollPane(txtArea);
//c.add(sp);
cmdArmazenar.addActionListener(this);
cmdCalcular.addActionListener(this);
}
public void actionPerformed(ActionEvent ev){
Object obj = ev.getSource();
if(obj==cmdArmazenar){
vetor[cont] = Integer.parseInt(txtValor.getText());
txtValor.setText("");
txtValor.requestFocus();
cont++;
}
else if(obj==cmdCalcular){
int total = vetor.length;
int i, acum=0;
float media=0;
for(i=0;i<=total;i++){
System.out.println(vetor[i]+"\n");
acum=acum+vetor[i];
}
media = acum/total;
//String retorno = String.valueOf(media);
//lblMedia.setText(media);
System.out.println(media);
}
}
public void focusGained(FocusEvent f){
// estou implementando o metodo pq pertence a interface FocusListener, mas nao vou implementar nada nele.
}
// metodo de acao para o evento focus
public void focusLost(FocusEvent fo){
//
}
public static void main(String args[]){
Estatistica C = new Estatistica();
C.setSize(300,300);
C.setLocation(300,250);
C.setTitle("Calculo de Médias");
C.setResizable(false);
C.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
C.show();
}
}
