SofakiR Δημοσ. 10 Απριλίου 2014 Δημοσ. 10 Απριλίου 2014 (επεξεργασμένο) Γεια σας, έχω τον παρακάτω κωδικά χειρισμού 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.. εχει κανείς καμια ιδέα Επεξ/σία 10 Απριλίου 2014 από SofakiR
georgemarios Δημοσ. 10 Απριλίου 2014 Δημοσ. 10 Απριλίου 2014 Tο vector coords το οριζεις μεσα στο 1ο if (το οποιο το εκανες comment-out κατα λαθος λογω copy-paste) Μολις βγεις απο το if, το vector δεν υπαρχει. Πως θες να το χρησιμοποιησεις;
SofakiR Δημοσ. 10 Απριλίου 2014 Μέλος Δημοσ. 10 Απριλίου 2014 Κατ' αρχας ευχαριστώ πολύ που απαντησες. θέλω μετα απο αυτην την ρουτίνα να τρέξει μια αλλη κλάση που θα καλεί ο παρακάτω κώδικας με τις μεταβλητές αυτες.. 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...
georgemarios Δημοσ. 11 Απριλίου 2014 Δημοσ. 11 Απριλίου 2014 Στο κωδικα που εβαλες τωρα δε δηλωνεις την coords. Εκει που την δηλωνες πριν (δηλ μεσα στο if πριν το for) θα επρεπε να δουλευει. Οποτε ισως ειναι αλλου το προβλημα σου. Πως τσεκαρεις οτι δεν εχει στοιχεια η coords? Βαζεις breakpoint ή γραφεις μηνυματα στην κονσολα; Και που το κανεις αυτο; Εισαι σιγουρος πως η comps2 δεν ειναι 0? Εισαι σιγουρος πως η panelLoc εχει non-null τιμη? Ισως ειναι καλυτερα να παραθεσεις ολο τον κωδικα σου.
SofakiR Δημοσ. 11 Απριλίου 2014 Μέλος Δημοσ. 11 Απριλίου 2014 Οντως όταν ξανάφερα την δηλωση του vector εσωτερικα μου το πηρε σημερα, την είχα βάλει global γτ πάλι δεν μου πέρναγε όλα τα σημεια. Τωρα το τι πείραξα απο χτες σε σημερα και δούλεψε.. ο Θεος κι η ψυχη του.. keep going εχω δρομο ακομα για την ολοκλήρωση οπότε θα ξαναενοχλήσω..
Προτεινόμενες αναρτήσεις
Δημιουργήστε ένα λογαριασμό ή συνδεθείτε για να σχολιάσετε
Πρέπει να είστε μέλος για να αφήσετε σχόλιο
Δημιουργία λογαριασμού
Εγγραφείτε με νέο λογαριασμό στην κοινότητα μας. Είναι πανεύκολο!
Δημιουργία νέου λογαριασμούΣύνδεση
Έχετε ήδη λογαριασμό; Συνδεθείτε εδώ.
Συνδεθείτε τώρα