1. java
  2. android
  3. c#
  4. .net
  5. javascript
  6. php
  7. jquery
  8. html
  9. sql

Movendo JLabel em um JLayeredPane

Eu tentei mover um grupo de JLabel de forma individual , na tentativa de criar um jogo de quebra-cabeças , mas quando movo cada um deles , há um efeito de tremedeira . Quando há somente um label na tela , o efeito some .

Vou postar o código para ver se me ajudam :

package imagepuzzle;

import java.awt.Dimension;
import java.awt.event.MouseEvent;
import java.awt.event.MouseMotionAdapter;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JFrame;
import javax.swing.JLayeredPane;

/**
 *
 * @author Paulo Sérgio
 */
public class ImagePanel extends JPanel 
{

    private JFrame frame;
    private JLabel[] imagesLabel;
    private JLayeredPane panel;
    private final int x = 50;
    private final int y = 50;
    private int count = 0;


    public ImagePanel(JLabel[] imagesLabel , JFrame frame)
    {
        this.imagesLabel = imagesLabel;
        this.frame = frame; 

        panel = new JLayeredPane();

        panel.setPreferredSize(new Dimension(400,400));

        for(int i = 0 ; i < 4 ; i++)
        {
            for(int j = 0 ; j < 4 ; j++)
            {
                imagesLabel[count].setBounds(i*100, j*100, 100, 100);
                panel.add(imagesLabel[count]);
                count++;
            }

        }

        add(panel);

        for(JLabel label : imagesLabel)
            addMouseMotionListener(new Handler(label));

    }

    private class Handler extends MouseMotionAdapter
    {

        private JLabel label;

        public Handler(JLabel label)
        {
            this.label = label;
        }

        @Override
        public void mouseDragged(MouseEvent e) {

            label.setLocation(e.getX() - x , e.getY() - y);
            repaint();
        }

    }

    public void setLabels(JLabel[] labels)
    {
        imagesLabel = labels;
    }


}
  1. Você vai ver essas setas em qualquer página de pergunta. Com elas, você pode dizer se uma pergunta ou uma resposta foram relevantes ou não.
  2. Edite sua pergunta ou resposta caso queira alterar ou adicionar detalhes.
  3. Caso haja alguma dúvida sobre a pergunta, adicione um comentário. O espaço de respostas deve ser utilizado apenas para responder a pergunta.
  4. Se o autor da pergunta marcar uma resposta como solucionada, esta marca aparecerá.
  5. Clique aqui para mais detalhes sobre o funcionamento do GUJ!

1 resposta

Não é a resposta que estava procurando? Procure outras perguntas com as tags java jogos swing ou faça a sua própria pergunta.