Προς το περιεχόμενο

Προτεινόμενες αναρτήσεις

Δημοσ. (επεξεργασμένο)

Γεια σας, έχω τον παρακάτω κωδικά χειρισμού event...

   public void mouseClicked(MouseEvent e) { //Invoked when a mouse button has been pressed on a component.            
if (e.getButton()==MouseEvent.BUTTON3){   // On right click do:
            Vector <Point> coords= new Vector <Point>(); //make a new Vector
      Integer comps = chessBoard.getComponentCount();   //Count the Objs in chessBoard
      for (int i=0; i<comps; i++){                      //for every Obj
          JPanel panel = (JPanel)chessBoard.getComponent(i); //get the Obj as A JPanel
          Integer comps2 = panel.getComponentCount();   //For every panel count the Components it contains
      if (comps2!=0){   //if components are not zero
           Point panelLoc= chessBoard.getComponent(i).getLocation(); //get Panel's Location
           coords.add(panelLoc);//add Panel's coordinates in Vector
           
      } }
         }
     }

το panelLoc το βλέπει μόνο στο if..και λογικό είναι.

Αλλά δεν παίρνει τα σημεία το Vector ~ το οποίο δεν φαινεται και πέρα απο το FOR..

εχει κανείς καμια ιδέα :(

Επεξ/σία από SofakiR
Δημοσ.

Tο vector coords το οριζεις μεσα στο 1ο if (το οποιο το εκανες comment-out κατα λαθος λογω copy-paste)

Μολις βγεις απο το if, το vector δεν υπαρχει.

Πως θες να το χρησιμοποιησεις;

Δημοσ.

Κατ' αρχας ευχαριστώ πολύ που απαντησες.

θέλω μετα απο αυτην την ρουτίνα να τρέξει μια αλλη κλάση που θα καλεί ο παρακάτω κώδικας με τις μεταβλητές αυτες..

                dispose();
                nAlgorithm algs = new nAlgorithm(nqueens,coords);
                algs.setSize(nq*80, nq*80);
                algs.setVisible(true);

Ετσι όπως το καταλαβαίνω 

 public void mouseClicked(MouseEvent e) { //Invoked when a mouse button has been pressed on a component.    
        if (e.getButton()==MouseEvent.BUTTON3){   // On right click do:

      Integer comps = chessBoard.getComponentCount();   //Count the Objs in chessBoard
      for (int i=0; i<comps; i++){                      //for every Obj
          JPanel panel = (JPanel)chessBoard.getComponent(i); //get the Obj as A JPanel
          Integer comps2 = panel.getComponentCount();   //For every panel count the Components it contains
      if (comps2!=0){   //if components are not zero
           Point panelLoc= chessBoard.getComponent(i).getLocation(); //get Panel's Location
           coords.add(panelLoc);//add Panel's coordinates in Vector
           
      } }
         
         dispose();
                nAlgorithm algs = new nAlgorithm(nqueens,coords);
                algs.setSize(nq*80, nq*80);
                algs.setVisible(true);
        }
     }

...δεν θα βγεί απο το πρώτο if... 

Δημοσ.

Στο κωδικα που εβαλες τωρα δε δηλωνεις την coords.

Εκει που την δηλωνες πριν (δηλ μεσα στο if πριν το for) θα επρεπε να δουλευει. Οποτε ισως ειναι αλλου το προβλημα σου.

Πως τσεκαρεις οτι δεν εχει στοιχεια η coords? Βαζεις breakpoint ή γραφεις μηνυματα στην κονσολα; Και που το κανεις αυτο; Εισαι σιγουρος πως η comps2 δεν ειναι 0? Εισαι σιγουρος πως η panelLoc εχει non-null τιμη?

 

Ισως ειναι καλυτερα να παραθεσεις ολο τον κωδικα σου.

Δημοσ.

Οντως όταν ξανάφερα την δηλωση του vector εσωτερικα μου το πηρε σημερα, την είχα βάλει global γτ πάλι δεν μου πέρναγε όλα τα σημεια. 

Τωρα το τι πείραξα απο χτες σε σημερα και δούλεψε.. ο Θεος κι η ψυχη του..

keep going εχω δρομο ακομα για την ολοκλήρωση οπότε θα ξαναενοχλήσω.. :)

Δημιουργήστε ένα λογαριασμό ή συνδεθείτε για να σχολιάσετε

Πρέπει να είστε μέλος για να αφήσετε σχόλιο

Δημιουργία λογαριασμού

Εγγραφείτε με νέο λογαριασμό στην κοινότητα μας. Είναι πανεύκολο!

Δημιουργία νέου λογαριασμού

Σύνδεση

Έχετε ήδη λογαριασμό; Συνδεθείτε εδώ.

Συνδεθείτε τώρα
  • Δημιουργία νέου...