Sinceramente non era mia intenzione fare gli indovinelli, ma anzi eliminare quella parte di codice, la quale a parer mio, non portava contributo ai fini della risoluzione del problema, comunque il listato integrale è il seguente:
codice:
public class NodeTest {
public static void main(String argv[]) {
//inerisce nell'array Nodes tre oggetti Node
Node[] nodes = new Node[150];
double d; //distanza
double r; //raggio
int l = 350; //Lunghezza Area
int a = 500; //Altezza Area
double Nd; //numeri di nodi generati da una sequqnza casuale
Integer i; //buffer
int k,q; //indice
boolean flag = true;
NumberFormat formattatore = NumberFormat.getNumberInstance(); // cultura predefinita
formattatore.setMaximumFractionDigits(2); // max due cifre decimali dopo la virgola
//metodo per leggere un numero corretto da input
while (true){
try {
String numero = JOptionPane.showInputDialog(null,"Inserisci un numero intero. [Con 20 genera casualmente]");
i = new Integer(numero);
break;
} catch (NumberFormatException e) {
JOptionPane.showMessageDialog(null,"Devi inserire un numero intero!");
}//catch
}//while
System.out.println("\n Area MAX: altezza="+a+"; lunghezza="+l+"\n");
//converte un numero oggetto Integer in un numero intero
int Np = i.intValue(); //Numero di Nodi
if(Np==20){ //se il numero di nodi è 20 genera un numero di nodi casuali
Nd=4+46*Math.random();
Np=(int)Nd;
}//if
if(Np>=150){
Np = 150;
}//if
//System.out.println("***DEBUG Np = "+Np);
//posiziona i nodi nel piano in modo casuale
for(k=0;k<Np;k++){
nodes[k]= new Node(Math.random()*(a-30)+15, Math.random()*(l-30)+15);
}//for k
//stampa l'informazione su tutti gli oggetti Employee
for(k = 0; k < nodes.length; k++){
Node e = nodes[k];
e.setId();
r = e.getR();
//e.setR(-2);
//double r2 = e.getR();
d = e.getD(nodes[0].getX(), nodes[0].getY());
// imposto il formattatore con le specifiche desiderate
System.out.println("id="+formattatore.format(e.getId())
+ "\t (" + formattatore.format(e.getX()) + ";" + formattatore.format(e.getY())
+ ") \t raggio=" + formattatore.format(r)
+ " \t d = " + formattatore.format(d));
nodes[k] = e;
}//for k
//NON VIENE VISUALIZZATO!!!
for(k = 0; k < nodes.length; k++){
// imposto il formattatore con le specifiche desiderate
System.out.println("***DEBUG nodes["+formattatore.format(nodes[k].getId())
+ "]\t (" + formattatore.format(nodes[k].getX()) + ";" + formattatore.format(nodes[k].getY())
+ ") \t raggio=" + formattatore.format(nodes[k].getR())
+ " \t d = " + formattatore.format( nodes[k].getD( nodes[0].getX(), nodes[0].getY() ) ) );
}//for k
}//main
}//NodeTest