Komponenten über setName () vergleichen.

Ich codiere ein Bildrätselspiel und ein Teil des Codes besteht darin, die vom Benutzer ausgewählten Teile mit den Teilen des richtigen Bildes zu vergleichen.

Jedes Bildstück ist bereits einem JButton als ImageIcon hinzugefügt.

Ein Identifikator ist erforderlich, um jedes Bildstück voneinander zu unterscheiden und um es zu vergleichen.

Ich setze einen setName () für jeden als Bezeichner erstellten JButton.

Der Vergleich beginnt, wenn der Benutzer die Maustaste loslässt, nachdem er die Puzzleteile aus dem ursprünglichen 3x3-Raster gezogen hat, wobei sich die gemischten Teile zum Abgleichen auf dem anderen 3x-Raster befinden.

Ich habe Probleme, den Fehler aus dem Vergleich zu entfernenif Aussage.

Ich habe die Vergleichsidee von diesem SO-Thread -Verknüpfung

    private JButton[] button = new JButton[9];
    private JButton[] waa = new JButton[9];

    private String id;
    private int cc;
    private String id2;
    private int cc2;

    // setName for each of the 9 buttons in the original 3x3 grid being created 
    // which stores the shuffled puzzle pieces
    for(int a=0; a<9; a++){
        button[a] = new JButton(new ImageIcon());
        id += Integer.toString(++cc);
        button[a].setName(id); 
    }

    // setName for each of the 9 buttons in the other 3x3 grid  
    // where the images will be dragged to by the user
        for(int b=0; b<9; b++){
        waa[b] = new JButton();
        id2 += Integer.toString(++cc2);
        waa[b].setName(id2); 
    }

    // check if puzzle pieces are matched in the correct place
    // compare name of original 'button' array button with the name of 'waa' array buttons 
        button[a].addMouseListener(new MouseAdapter(){

            public void mouseReleased(MouseEvent m){
                if(m.getbutton().getName().equals (waa.getName())){

                    }
                    else{
                         JOptionPane.showMessageDialog(null,"Wrong! Try Again.");
                    }
            }
        }

Antworten auf die Frage(2)

Ihre Antwort auf die Frage