Ciao a tutti ho un grandissimo problema in java.
Ecco i 2 file:

codice:
import javax.swing.JOptionPane;
import java.awt.event.*;
import javax.swing.*;
import java.awt.*;

public class ProgettoTest extends Frame
{

    public static void main(String args[]) 
	{

	  Progetto finestra=new Progetto();
	  	 	 
	  String input;
	  double x0,y0;	
	  int aaa;
	  double dimAla;
	  int[] inizio;
	  
	  x0=y0=0;

	  inizio=new int[4];//array domande 2,3,4,5

	  input=JOptionPane.showInputDialog("Inserisci n°pezzi dell'ala");
	  aaa=Integer.parseInt(input);

	  inizio=finestra.domandeInizio(inizio);
	  
	  //dati=new double[a][3];
	  
	  Progetto d = new Progetto(5, 5, 500, 500, aaa);
	  d.ValoriDisegno();
	  
	  
	}
	
    
    
}
file 2 (Progetto.java)

codice:
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;


public class Progetto extends Frame
{
	
		public void paint(Graphics go)
	    {
	    	
	       go.drawLine(getX0(), getY0(), getX(), getY());
	      
	      

        }
	
    public Progetto()
    {
    	chiusura a=new chiusura();
    	setBounds(0,0,500,500);
    	setTitle("Calcolo");
       	setVisible(true);
       	addWindowListener(a);
       	
    }
    
    
  	
	public int[] domandeInizio(int[] inizio)
    {
	  	String input;
	  	
	  	input=JOptionPane.showInputDialog("1");
	  	inizio[0]=Integer.parseInt(input);

	  	input=JOptionPane.showInputDialog("2");
	  	inizio[1]=Integer.parseInt(input);

	  	input=JOptionPane.showInputDialog("3");
	  	inizio[2]=Integer.parseInt(input);

	  	input=JOptionPane.showInputDialog("4");
	  	inizio[3]=Integer.parseInt(input);
	  	repaint();
	  	return inizio;
	 }
	 int dati[][];
	int x0;
	int y0;
	int x;
	int y;
	int a;//n°parti ala
	
	public Progetto(int x0, int y0, int x, int y, int a)
	{
		this.x0=x0;
		this.y0=y0;
		this.x=x;
		this.y=y;
		this.a=a;
		dati=new int[a][3];		
	}
	public void setX0(int val)
	{
		x0=val;
	}
	public void setX(int val)
	{
		x=val;
	}
	public void setY0(int val)
	{
		y0=val;
	}
	public void setY(int val)
	{
		y=val;
	}
	public int getX0()
	{
		return x0;
	}
	public int getX()
	{
		return x;
	}
	public int getY0()
	{
		return y0;
	}
	public int getY()
	{
		return y;
	}
	
	
		
	public void ValoriDisegno()
	{
		String input;
		
		for(int i=0; i<a; i++)
		{
	      input=JOptionPane.showInputDialog("Inserisci pezzo sopra");
	      dati[i][0]=Integer.parseInt(input);
          
          if(i!=0)
	      {	      
	      	x0=x0+dati[i-1][0];
	      }//end if
	    // paint(x0,0,dati[i][0],0);
	      
          input=JOptionPane.showInputDialog("Inserisci altezza sopra");
	      dati[i][1]=Integer.parseInt(input);

	   	   if(i!=0)
	 	   {
	    		y0=y0+dati[i-1][1];
		   }//end if

	     //disegno(50,50,300,300);

	    	input=JOptionPane.showInputDialog("Inserisci differenza");
	    	dati[i][2]=Integer.parseInt(input);
	    	repaint();

	     } 
	     


	}  
    	

    
}	
class Disegno extends Frame
{
	

            

	 
	 
		

}
class chiusura extends WindowAdapter
{
		public void windowClosed(WindowEvent e)
		{
			
			System.exit(0);
		}
		public void windowClosing(WindowEvent e)
		{
			e.getWindow().dispose();
			
			
		}
		
}
Quando compilo il programma non da errori e nianche durante l'eseguzione.

Alla riga 32/33 del ile progettoTest ovvero:
codice:
Progetto d = new Progetto(5, 5, 500, 500, aaa);
	  d.ValoriDisegno();
assegno i valori di default per la classe Progetto e fino a qui nessun problema .
Il problema sorge quando li chiamo nella funzione paint del file Progetto.Class alle righe da 6 alla 15 ovvero:
codice:
		public void paint(Graphics go)
	    {
	    	
	       go.drawLine(getX0(), getY0(), getX(), getY());
	      
	      

        }
Il problema è che getX0() rimane sempre 0 .
sapreste aiutarmi nel capire come mai non prende i nuovi valori quando gli ridò il repaint() ?
Grazie in anticipo.