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

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

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

Κατ' αρχάς καλησπέρα, δουλεύω πάνω σε μια εφαρμογή του παιχνιδιού domino ως εργασία στη σχολή μου. Προκειμένου να εμφανίσω τα τουβλάκια έχω φτιάξει μια κλάση (Brickk) που κάνει extend την JLabel με κάθε αντικείμενο της κλάσης να έχει ορισμένα χαρακτηριστικά ανάμεσα τους και η εμφάνιση (Image). Το πρόβλημα είναι ότι για να χειριστώ τα τουβλάκια (JLabels) θέλω να τα προσθέτω σε ένα ArrayList κι αυτό προκαλεί με τη σειρά του execution errors. Υπάρχει κάποια ιδιαιτερότητα στην χρήση JLabels μέσα από ArrayList; Παραθέτω κι ένα μικρό κομμάτι του κώδικα

Κλάση Brickk

public class Brickk extends JLabel {
    

    private int sum;
    private int firstNumber, secondNumber;
    private boolean doubleBrick;
    private boolean isPlayed;//has been played
    private boolean isActive;//can be played
    private Image img;
    

//Constructor
    public Brickk(int i, int j) {
           
        firstNumber = i;
        secondNumber = j;
        sum = i + j;
        doubleBrick = i==j;
        isActive = false;
        isPlayed = false;     
        img = new ImageIcon(this.getClass().getResource("/"+i+j+".png")).getImage();
        setIcon(new ImageIcon(img));
    }

....

Κλάση Solo

public class Solo {

    private JFrame frame;
    private JPanel soloPanel;
    private ArrayList<JLabel> bricksList;
    
    public Solo() {
        
        initialize(); 
        Brickk brick = new Brickk(i,j); //όπου i,j 'τυχαίοι' αριθμοί
        brick.setBounds(50,50,50,100); //τυχαία θέση στο panel
        //bricksList.add(brick);
        soloPanel.add(brick);
    }

Με αυτή τη δομή τρέχει κανονικά και μου εμφανίζει στο panel του τουβλάκι που έχω φτιάξει όπως πρέπει

Όταν τρέχω και το bricksList.add(brick); (αφαιρώ τα "//" σχόλια από μπροστά) τότε αρχίζει το πρόβλημα

Έχετε καμία ιδέα; Ευχαριστώ εκ των προτέρων

exception

Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException

at domino.Solo.<init>(Solo.java:38) 

όπου (Solo.java:38)  -> bricksList.add(brick);

Επίσης το ίδιο συμβαίνει και αν αλλάξω το περιεχόμενο του ArrayList από <JLabel> σε <Brickk>

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

Καλημέρα. Τι exception παίρνεις ακριβώς; Αρχικοποιείς το bricks πριν το χρησιμοποιήσεις;

ΥΓ. Μορφοποίησε το κώδικα του post σου, να είναι πιο ευανάγνωστος 

Δημοσ.
9 ώρες πριν, Kostas Palaiologos είπε

Καλημέρα. Τι exception παίρνεις ακριβώς; Αρχικοποιείς το bricks πριν το χρησιμοποιήσεις;

ΥΓ. Μορφοποίησε το κώδικα του post σου, να είναι πιο ευανάγνωστος 

έκανα μια επεξεργασία στον κώδικα και πρόσθεσα τα exception. Ελπίζω να είναι πιο κατανοητά τώρα

Δημοσ.
1 ώρα πριν, Lanike71 είπε

Προσθέτεις κάτι στο bricksList. Το bricksList υπάρχει κάπου; 

Δε βλέπω να το δημιουργείς.

:unsure: μπροστά στα μάτια μου...

ευχαριστώ πολύ

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

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

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

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

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

Σύνδεση

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

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