Salve,
premetto che mi sono appena avvicinato al linguaggio java e ovviamente mi sto trovando davanti i primi problemini..
Spero che qualcuno mi possa aiutare:
Il programa è questo:finchè in input c'è un numero >0 fai max,min,e media dei dati in ingresso.
Appena si da 0 i dati vengono passati ad una classe che traccia un grafico con questi dati.
Il prossimo numero in ingresso>0 dà inizio nuovamente al processo.
Tutto termina quando dopo lo 0 viene dato in ingresso -1..
Il problema è che il grafico viene tracciato solo relativamente all'ultimo gruppo di dati in ingresso,'dimenticando' i dati precedenti,mentre io avrei voluto un grafico totale che mostrasse i dati relativi ad ogni gruppo di dati(che termina con lo 0..).
Ecco il main:
codice:
import java.util.Scanner;
import javax.swing.JFrame;

public class Media {
public static void main(String args[]){
Scanner input=new Scanner(System.in);
Graficomedia pannello=new Graficomedia();
int l,a,g=0;
while((a=input.nextInt())>-1){
l=a;
int media,p=40,sum=0,max=l,min=l,conta=1;
while((a=input.nextInt())>0){
if(a>max)
max=a;
if(a<min)
min=a;
conta++;
sum+=a;
}
media=sum/conta;
g+=p; /*questo parametro che viene passato permette alle linee
del grafico di non essere posizionate nello stesso punto, ma spostate l'una dall'altra di g.*/

pannello.Metodo(media,max,min,g);

}

JFrame application=new JFrame();
application.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
application.add(pannello);
application.setSize(300,300);
application.setVisible(true);
}
}
Questa invece è la classe:

codice:
import java.awt.Graphics;
import javax.swing.JPanel;

public class Graficomedia extends JPanel {

int med,mass,mini,a;
public void Metodo(int me,int mas,int mi,int jj) {
med=me;
mass=mas;
mini=mi;
a=jj;
}
public void paintComponent(Graphics g){
super.paintComponent(g);
int larg=getWidth();
int alt=getHeight();
int media=med*2;
int max=mass*2;
int min=mini*2;
int b=10;
g.drawLine(10,10,10,alt-10);
g.drawLine(10,alt-10,larg-10,alt-10);
g.drawLine(a,10,a,alt-10);
g.drawLine(a-b,alt-10-min,a+b,alt-10-min);
g.drawLine(a-b,alt-10-max,a+b,alt-10-max);
g.drawLine(a-b,alt-10-media,a+b,alt-10-media);

}


}
Grazie a chiunque mi voglia aiutare..