Zamiana buttonów miejscami

0

Na panelu mam wstawiony button. Button ten jest podzielony na kilka mniejszych.

 public void createpuzzle() {

        jPanel1.removeAll();
        jPanel1.setLayout(new GridLayout(3, 3, 0, 0));

        List<ImageIcon> obrazki = new ArrayList<ImageIcon>();
        for (int i = 0; i < 3; i++) {
            for (int j = 0; j < 3; j++) {

                image = createImage(new FilteredImageSource(source.getSource(), new CropImageFilter(j * width / 3, i * height / 3, width / 3, height / 3)));

                obrazki.add(new ImageIcon(image));
            }
        }

        Collections.shuffle(obrazki);

        for (int i = 0; i < obrazki.size(); i++) {
            jButton3 = new JButton(obrazki.get(i));
            jPanel1.add(jButton3);
        }
    }

Widzę to tak, że LPM przeciągam button na miejsce innego i zamieniają się miejscami.
Wiem że należy wykorzystać albo MouseListener, albo MouseMotionListener (mouseDragged ?), ale tutaj zaczynają się schody, bo nie wiem jak rozpoznawać kliknięte buttony.
Proszę o podpowiedzi ;)

0

Metoda getSource().

0

Ale co ona mi da?

0

(JButton)(event.getSource()) to przeciągany przycisk.

0
 JButton button = (JButton)(event.getSource());
button.getIcon();

tak pobiore obrazek z buttona ktory przeciagam jak teraz zamienic na obrazek na ktory opuszcze button?

0
 public void actionPerformed(ActionEvent e) {
        JButton button = (JButton)e.getSource();
        
        int pozycja_x = button.getX();
        int pozycja_y = button.getY();
        
    }

tak pobieram współrzędne pierwszego klikniętego buttona i teraz chce je zamienić z drugim klikniętym buttonem
jak to zrobić ?

1 użytkowników online, w tym zalogowanych: 0, gości: 1