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,'sovrascrivendo' 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..