Ciao a tutti ho un grandissimo problema in java.
Ecco i 2 file:
file 2 (Progetto.java)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(); } }
Quando compilo il programma non da errori e nianche durante l'eseguzione.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(); } }
Alla riga 32/33 del ile progettoTest ovvero:
assegno i valori di default per la classe Progetto e fino a qui nessun problema .codice:Progetto d = new Progetto(5, 5, 500, 500, aaa); d.ValoriDisegno();
Il problema sorge quando li chiamo nella funzione paint del file Progetto.Class alle righe da 6 alla 15 ovvero:
Il problema è che getX0() rimane sempre 0 .codice:public void paint(Graphics go) { go.drawLine(getX0(), getY0(), getX(), getY()); }
sapreste aiutarmi nel capire come mai non prende i nuovi valori quando gli ridò il repaint() ?
Grazie in anticipo.

Rispondi quotando