come far funzionare questo codice???? in particolar modo: vedere il risultato e chiudere una finestra e inserire i dati una volta cliccato il Bottone "Inserisci" con l'ascoltatore Inseriscicodice:import javax.swing.*; import java.awt.*; import java.awt.event.*; import pack.*; class Area_by_Gauss_w extends JFrame { private int numero_vertici; private Double area; final String descrizione = "<HTML>Con questo piccolo programma si sarà in grado di calcolare l'area di un qualsiasi poligono avendo tutte le coordinate dei suoi punti rispetto a un generico piano cartesiano. NB= L'unità di misura del risultato sarà come quella inserita e ovviamente elevata alla seconda.</HTML>"; private JTextField Est; private JTextField Nord; private int n; private Poligono figura; private JFrame p_ins; public static void main(String args[]){ Area_by_Gauss_w risultato = new Area_by_Gauss_w(); } public Area_by_Gauss_w(){ super("Area di Gauss"); JOptionPane.showMessageDialog(null, this.descrizione, "Descrizione Programma", JOptionPane.INFORMATION_MESSAGE); this.setNVertici(); Poligono figura = new Poligono(this.numero_vertici); JOptionPane.showMessageDialog(null, "Bene ora inserisci i valori delle coordinate di tutti i punti", "Info", JOptionPane.INFORMATION_MESSAGE); // for(int n = 0; n < figura.getNumeroVertici(); n++) { p_ins = new JFrame("Inserisci le coordinate del punto "+n); p_ins.setDefaultCloseOperation(WindowConstants.DO_NOTHING_ON_CLOSE); GridLayout Layout_input = new GridLayout(5,1); JDialog input = new JDialog(p_ins, p_ins.getTitle(), true); input.setLayout(Layout_input); input.add(new JLabel("Inserisci prima la Coordinata Est (X) e poi Nord (Y) del punto "+n+":")); Est = new JTextField("0.00"); Nord = new JTextField("0.00"); JButton Reimposta = new JButton("Reimposta"); Reimposta.addActionListener(new Reset()); JButton Inserisci = new JButton("Inserisci!"); Inserisci.addActionListener(new Inserisci()); input.add(Est); input.add(Nord); input.add(Inserisci); input.add(Reimposta); input.pack(); input.setVisible(true); } figura.setArea_by_Gauss(); BorderLayout Layout1 = new BorderLayout(); super.setLayout(Layout1); super.add(new JLabel(this.descrizione), BorderLayout.NORTH); super.add(new JLabel("Area della Figura: "+figura.getArea()), BorderLayout.CENTER); super.pack(); super.setVisible(true); } public void setNVertici() { this.numero_vertici = leggiNumero_Integer_from_JOptionPane(); //controllo if (this.numero_vertici < 3) { //System.out.println("Una figura ha almeno 3 vertici e corrisponde a un triangolo..reinserisci il numero di vertici!"); setNVertici(); } } private int leggiNumero_Integer_from_JOptionPane(){ while(true){ try { String valore = JOptionPane.showInputDialog("Inserire per cortesia il numero di vertici della Figura."); return Integer.parseInt(valore); } catch (NumberFormatException exc){ JOptionPane.showMessageDialog(null, "Il valore inserito non è un numero. Per cortesia riprova", "Errore", JOptionPane.ERROR_MESSAGE); } } } private Double leggiDouble_from_String(String s) { while(true) { try{ Double n = Double.parseDouble(s); return n; } catch (NumberFormatException exc) { JOptionPane.showMessageDialog(null, "Il valore inserito non è un numero. Per cortesia riprova", "Errore", JOptionPane.ERROR_MESSAGE); } } } //Ascoltatori private class Reset implements ActionListener { public void actionPerformed(ActionEvent e) { Est.setText("0.00"); Nord.setText("0.00"); } } private class Inserisci implements ActionListener { public void actionPerformed(ActionEvent e) { figura.setCoordinateVertice(n,leggiDouble_from_String(Est.getText()),leggiDouble_from_String(Nord.getText())); //new WindowEvent(p_ins,WindowEvent.WINDOW_CLOSED); (non funz) //new WindowEvent(p_ins,202); (non funz) //JFrame.EXIT_ON_CLOSE; (non funz) //p_ins.setVisible(false); (non funz) } } }