Как крутить JLabel в java?

У меня есть приложение в java, в которой я нуждаюсь в том, чтобы покрутить одну JLabel используя методы Graphics и Graphics2D, я считаю осуществленным один MouseMotionListener что способствует тому, чтобы было возможно двигать JLabel.

если я могу крутить JLabel, но Ваш контент теряется.

Это мой код.

public class Textos extends JLabel implements MouseMotionListener {

    public void objeto() {

        String valor;

        if (FTexto.conTexto == true) {

            valor = FTexto.TContenidos.getText();

            NewJFrame.la = new JLabel(valor) {
                public void paintComponent(Graphics g) {
                    Graphics2D gx = (Graphics2D) g;
                    gx.rotate(Math.toRadians(90), 10, 100);
                    super.paintComponent(g);
                }
            };

            NewJFrame.la.setSize(80, 170);
            NewJFrame.la.setOpaque(true);
            NewJFrame.la.setBackground(Color.yellow);
            NewJFrame.la.setFont(new Font(CFuente.getSelectedItem().toString(), Font.PLAIN, Integer.parseInt(String.valueOf(FTexto.CTama.getSelectedItem()))));
            NewJFrame.la.setVerticalTextPosition(JLabel.TOP);
            NewJFrame.la.setHorizontalTextPosition(JLabel.LEFT);
            NewJFrame.PPanel1.add(NewJFrame.la, new Integer(3));
            NewJFrame.labels.add(NewJFrame.la);
            NewJFrame.indice++;
            NewJFrame.la.repaint();
            System.out.println(NewJFrame.labels.size());
            NewJFrame.con2 = true;
            NewJFrame.labels.get(NewJFrame.indice - 1).addMouseMotionListener(this);

        } else {
            valor = "";
            NewJFrame.labels.get(NewJFrame.indice - 1).addMouseMotionListener(this);
        }

    }
}

Что я врежу?


Обновление:

Это код, который у меня есть, чтобы создавать JLabel и Jlabel будь создана в одном Frame названный NewJFrame.la. Поскольку они могут видеть, у меня есть метод dragged, чтобы мочь двигать этикетки

public class Textos extends JLabel implements MouseMotionListener {

    public void objeto() {
        String valor;
        if (FTexto.conTexto == true) {
            valor = FTexto.TContenidos.getText();

            NewJFrame.la = new JLabel(valor) {
                protected void paintComponent(Graphics grafico) {

                    Graphics2D graficoNuevo = (Graphics2D) grafico;

                    graficoNuevo.setRenderingHint(
                            RenderingHints.KEY_ANTIALIASING,
                            RenderingHints.VALUE_ANTIALIAS_ON
                    );

                    AffineTransform at = graficoNuevo.getTransform();
                    Shape figura = graficoNuevo.getClip();

                    double X = getWidth() / 2.0;
                    double Y = getHeight() / 2.0;

                    at.rotate(Math.toRadians(90), X, Y);

                    graficoNuevo.setTransform(at);
                    graficoNuevo.setClip(figura);

                    super.paintComponent(grafico);
                }
            };
            NewJFrame.la.setSize(200, 30);
            NewJFrame.la.setOpaque(true);
            NewJFrame.la.setBackground(Color.yellow);
            NewJFrame.la.setFont(new Font(CFuente.getSelectedItem().toString(), Font.PLAIN, Integer.parseInt(String.valueOf(FTexto.CTama.getSelectedItem()))));
            NewJFrame.la.setVerticalTextPosition(JLabel.TOP);
            NewJFrame.la.setHorizontalTextPosition(JLabel.LEFT);
            NewJFrame.PPanel1.add(NewJFrame.la, new Integer(3));
            NewJFrame.labels.add(NewJFrame.la);
            NewJFrame.indice++;
            NewJFrame.la.repaint();
            System.out.println(NewJFrame.labels.size());
            NewJFrame.con2 = true;
            NewJFrame.labels.get(NewJFrame.indice - 1).addMouseMotionListener(this);

        } else {
            valor = "";
            NewJFrame.labels.get(NewJFrame.indice - 1).addMouseMotionListener(this);
        }

    }

    @Override
    public void mouseDragged(MouseEvent me) {
        if (NewJFrame.labels.size() >= 1) {
            if (me.getSource() == NewJFrame.labels.get(0)) {
                NewJFrame.labels.get(0).setLocation(NewJFrame.labels.get(0).getX() + me.getX(), NewJFrame.labels.get(0).getY() + me.getY());
            }
        }

        if (NewJFrame.labels.size() >= 2) {
            if (me.getSource() == NewJFrame.labels.get(1)) {
                NewJFrame.labels.get(1).setLocation(NewJFrame.labels.get(1).getX() + me.getX(), NewJFrame.labels.get(1).getY() + me.getY());
            }
        }

        if (NewJFrame.labels.size() >= 3) {
            if (me.getSource() == NewJFrame.labels.get(2)) {
                NewJFrame.labels.get(2).setLocation(NewJFrame.labels.get(2).getX() + me.getX(), NewJFrame.labels.get(2).getY() + me.getY());
            }
        }

        if (NewJFrame.labels.size() >= 4) {
            if (me.getSource() == NewJFrame.labels.get(3)) {
                NewJFrame.labels.get(3).setLocation(NewJFrame.labels.get(3).getX() + me.getX(), NewJFrame.labels.get(3).getY() + me.getY());
            }
        }
    }

    @Override
    public void mouseMoved(MouseEvent me) {
        if (NewJFrame.labels.size() >= 1) {
            NewJFrame.labels.get(0).setCursor(new Cursor(Cursor.MOVE_CURSOR));
        }
        if (NewJFrame.labels.size() >= 2) {
            NewJFrame.labels.get(1).setCursor(new Cursor(Cursor.MOVE_CURSOR));
        }
        if (NewJFrame.labels.size() >= 3) {
            NewJFrame.labels.get(2).setCursor(new Cursor(Cursor.MOVE_CURSOR));
        }
        if (NewJFrame.labels.size() >= 4) {
            NewJFrame.labels.get(3).setCursor(new Cursor(Cursor.MOVE_CURSOR));
        }
    }
}
6
задан 03.08.2017, 05:15
0 ответов