Sto cercando di implementare la gestione di un evento di una casella di testo nel seguente modo:
in cui l'oggetto private clumpPanel clump usa il metodo clump.setNaw(num) così implementato:codice:/** Crea un frame di ampiezza WIDTH ed altezza HEIGHT, acquisendo la risoluzione video lo presenta a partire ad 1/4 delle sue coordinate. */ class tesiFrame extends JFrame{ //variabili posizione private double x1aw[]=new double[100]; //casuali private double y1aw[]=new double[100]; private int xaw[]=new int[100]; //convertite private int yaw[]=new int[100]; private int kaw; //indice /** Costruttore @param takap rappresenta la lunghezza dell'area di lavoro @param habap rappresenta l'altezza dell'area di lavoro @param Np rappresenta il numero di nodi */ public tesiFrame(int takap, int habap, int Np){ ... Container contentPane = getContentPane(); //contenitori di pannelli //rilevatore di eventi listener = new NawFieldListener(); //pannello di ricerca JPanel bPanel = new JPanel(); nawField = new JTextField("00",3); bPanel.add(nawField); generaButton = new JButton("Genera"); bPanel.add(generaButton); contentPane.add(bPanel, BorderLayout.NORTH); //pannello grafo clumpPanel panel = new clumpPanel(takaaw, habaaw, Naw, xaw, yaw, x1aw, y1aw); contentPane.add(panel, BorderLayout.CENTER); }//tesiFrame /** Imposta il numero di nodi sui valori memorizzati nel campo di testo */ public void setNodi(){ try{ //acquisisce quanto scritto ed elimina gli spazi vuoti int num = Integer.parseInt(nawField.getText().trim()); clump.setNaw(num); }catch(NumberFormatException e){ //non imposta il numero di nodi è errato JOptionPane.showMessageDialog(null,"Devi inserire un numero intero!"); }//catch }//setNodi public static final int WIDTH = 500; //Ampiezza Frame public static final int HEIGHT = 400; //Altezza Frame prima 350 private clumpPanel clump; private DocumentListener listener; private JTextField nawField; private JButton generaButton; /** Quando il testo subisce modifiche, viene chiamato uno dei seguenti tre metodi. I primi due metodi vengono chiamati se sono stati inseriti o eliminati caratteri. Il terzo metodo non viene chiamato per i campi testo. */ private class NawFieldListener implements DocumentListener{ public void insertUpdate(DocumentEvent e){ setNodi(); } public void removeUpdate(DocumentEvent e){ setNodi(); } public void changeUpdate(DocumentEvent e){ } }//NawFieldListener }//tesiFrame
ma quando compilo il file mi viene visualizzato il seguente messaggio di errore:codice:/** Un pannello che visualizza un grafo clump */ class clumpPanel extends JPanel{ private Color col1,col2,col3,col4; //colori private double r; //raggio private int k,l; //indici private double Nd; //numero nodi casuali private int Naw; //numero nodi private int takaaw,habaaw; //lunghezza area grafo, altezza area grafo private int kaw,iaw,jaw,i; //indici //vettori posizione private double x1aw[]=new double[100]; //casuali double y1aw[]=new double[100]; private int xaw[]=new int[100]; //convertiti private int yaw[]=new int[100]; /** Costruttore @param takap rappresenta la lunghezza dell'area di lavoro @param habap rappresenta l'altezza dell'area di lavoro @param Np rappresenta il numero di nodi */ public clumpPanel(int takap, int habap, int Np, int x[], int y[], double xc[], double yc[]){ ... }//clumpPanel /** restituisce la distanza tra la differeza di due punti @param d1 rappresenta un valore di tipo double identicato come un punto @param d2 rappresenta un valore di tipo double identicato come un punto @param d2 rappresenta un valore di tipo double identicato come un punto @param d3 rappresenta un valore di tipo double identicato come un punto @param d4 rappresenta un valore di tipo double identicato come un punto */ public double d(double d1,double d2,double d3,double d4){ ... }//d /** Disegna il grafo @param g di tipo Graphics rappresenta un oggetto atto a disegnare immagini e testi */ public void paintComponent(Graphics g){ super.paintComponents(g); .... }//paintComponent /** Imposta il numero di nodi e la loro posizione; @param n numero di nodi */ public void setNaw(int num){ Naw = num; if(Naw==20){ //se il numero di nodi è 20 genera un numero di nodi casuali Nd=4+46*Math.random(); Naw=(int)Nd; }//if for(kaw=0;kaw<Naw;kaw++){ //posiziona i nodi nel piano in modo casuale x1aw[kaw]=Math.random()*(habaaw-30)+15; y1aw[kaw]=Math.random()*(takaaw-30)+15; xaw[kaw]=(int)x1aw[kaw]; yaw[kaw]=(int)y1aw[kaw]; }//for kaw repaint(); }//setNaw }//clumpPanel
N.B. Si tenga presente che l'implementazione della classe NawFieldListener è stata riprodotta sulla falsa riga di un esempio preso dal libro Java 2 - I Fondamenti della Mc Graw Hill.codice:C:\Documents and Settings\Giuseppe\Documenti\Java Source\tesiTest.java:145: tesiFrame.NawFieldListener is not abstract and does not override abstract method changedUpdate(javax.swing.event.DocumentEvent) in javax.swing.event.DocumentListener private class NawFieldListener implements DocumentListener{ ^ 1 error Compilation interrupted

Rispondi quotando