Würfel drehen

Weiti

Mitglied
Hallo, ich will einen Würfel drehen und hab nun angefangen erst mal ein Quadrat im Raum zu zeichnen.
Leider weiß ich nicht ob das so stimmt und vor allem wie ich View und Cam am besten setze.
Es geht hier nicht um kluge java-Programmierung sonder um die Umrechnung von 3D nach 2D und die Drehmatrizen.
Java:
/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

/*
 * Hauptklasse.java
 *
 * Created on 25.06.2010, 17:09:22
 */
package drehwuerfel;

import java.awt.Graphics;

/**
 *
 * @author Weiti
 */
public class Hauptklasse extends javax.swing.JFrame {

    /** Creates new form Hauptklasse */
    public Hauptklasse() {
        initComponents();
    }

    double s=5;
   // double faktor = 1;
   // double Bildschirmmitte_x = 300;
   // double Bildschirmmitte_y = 300;

    final double[] Cam = {300,300,300};
    final double[] View = {300,300,300};

    double[] Vektor1 = {0, 0, 20};
    double[] Vektor2 = {0, 20, 0};
    double[] Vektor3 = {0, 0, 20};

    double[] AB={0,s,0};
    double[] BC={s,0,0};
    double[] DC={0,s,0};
    double[] AD={s,0,0};

    public double[] drehX(double[] Vektor, double d) {
        double[][] MatrixX = {{1, 0, 0}, {0, Math.cos(d), -1 * Math.cos(d)}, {0, Math.sin(d), Math.cos(d)}};
        double[] Ausgabe = MatrixmalVektor(MatrixX, Vektor);
        return Ausgabe;
    }

     public double[] drehY(double[] Vektor, double d) {
        double[][] MatrixY = {{Math.cos(d), 0, Math.sin(d)}, {0, 1, 0,}, { -1*Math.sin(d), 0, Math.cos(d)}};
        double[] Ausgabe = MatrixmalVektor(MatrixY, Vektor);
        return Ausgabe;
    }

     public double[] drehZ(double[] Vektor, double d) {
        double[][] MatrixZ = {{Math.cos(d), -1*Math.sin(d), 0}, {Math.sin(d), Math.cos(d), 0}, {0, 0, 1}};
        double[] Ausgabe = MatrixmalVektor(MatrixZ, Vektor);
        return Ausgabe;
    }

    public double[] MatrixmalVektor(double[][] M, double[] V) {
        double[] y = new double[3];
        for (int i = 0; i < 3; ++i)
        {
            y[i] = 0;
            for (int j = 0; j < 3; ++j)
            {
                y[i] += M[i][j] * V[j];
            }
        }
        return y;
    }

    public double[] dim2of(double[] V) {
        /*
        double punktx = (Vektor[0] * faktor / Vektor[2]) + Bildschirmmitte_x;
        double punkty = (Vektor[1] * faktor / Vektor[2]) + Bildschirmmitte_y;
         *
         */
        double dx = (V[1]-Cam[1])+(V[0]-Cam[0])-(V[2]-Cam[2]);
        double dy = (V[2]-Cam[2])+(V[1]-Cam[1])-(V[0]-Cam[0])+(V[1]-Cam[1])-(V[0]-Cam[0]);
        double dz = (V[2]-Cam[2])+(V[1]-Cam[1])-(V[0]-Cam[0])-(V[1]-Cam[1])-(V[0]-Cam[0]);

        double bx = (dx-View[0])/(View[2]/dz);
        double by = (dy-View[1])/(View[2]/dz);
        double[] Ausgabe = {bx, by};
        return Ausgabe;
    }

    @Override
    public void paint(Graphics g) {

        int NN = 400;

        super.paint(g);

        double[] V1 = dim2of(Vektor1);
        double[] V2 = dim2of(Vektor2);
        double[] V3 = dim2of(Vektor3);

        double[] AB2 = dim2of(AB);
        double[] BC2 = dim2of(BC);
        double[] DC2 = dim2of(DC);
        double[] AD2 = dim2of(AD);

        //g.drawLine(NN, NN, NN+(int) (V1[0]), NN+(int) (V1[1]));
       // g.drawLine(NN, NN, NN+(int) (V2[0]), NN+(int) (V2[1]));
        //g.drawLine(NN, NN, (int) (V3[0]), (int) (V3[1]));

        g.drawLine(NN, NN, NN+(int) (AB2[0]), NN+(int) (AB2[1]));
        g.drawLine(NN+(int) (AB2[0]), NN+(int) (AB2[1]), NN+(int) (BC2[0]), NN+(int) (BC2[1]));
        g.drawLine(NN+(int) (AD2[0]), NN+(int) (AD2[1]), NN+(int) (DC2[0]), NN+(int) (DC2[1]));
        g.drawLine(NN, NN, NN+(int) (AD2[0]), NN+(int) (AD2[1]));


    }

    /** This method is called from within the constructor to
     * initialize the form.
     * WARNING: Do NOT modify this code. The content of this method is
     * always regenerated by the Form Editor.
     */
    @SuppressWarnings("unchecked")
    // <editor-fold defaultstate="collapsed" desc="Generated Code">
    private void initComponents() {

        jButton1 = new javax.swing.JButton();
        jButton2 = new javax.swing.JButton();
        jButton3 = new javax.swing.JButton();

        setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);
        setMinimumSize(new java.awt.Dimension(100, 100));

        jButton1.setText("drehX");
        jButton1.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jButton1ActionPerformed(evt);
            }
        });

        jButton2.setText("drehY");
        jButton2.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jButton2ActionPerformed(evt);
            }
        });

        jButton3.setText("drehZ");
        jButton3.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jButton3ActionPerformed(evt);
            }
        });

        javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());
        getContentPane().setLayout(layout);
        layout.setHorizontalGroup(
            layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, layout.createSequentialGroup()
                .addContainerGap(536, Short.MAX_VALUE)
                .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                    .addComponent(jButton3)
                    .addComponent(jButton2)
                    .addComponent(jButton1))
                .addGap(37, 37, 37))
        );
        layout.setVerticalGroup(
            layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(layout.createSequentialGroup()
                .addGap(24, 24, 24)
                .addComponent(jButton1)
                .addGap(18, 18, 18)
                .addComponent(jButton2)
                .addGap(18, 18, 18)
                .addComponent(jButton3)
                .addContainerGap(436, Short.MAX_VALUE))
        );

        pack();
    }// </editor-fold>

    private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {
        Vektor1=drehX(Vektor1,0.1*Math.PI/4);
        Vektor2=drehX(Vektor2,0.1*Math.PI/4);
        Vektor3=drehX(Vektor3,0.1*Math.PI/4);
        AB=drehX(AB,0.1*Math.PI/4);
        BC=drehX(BC,0.1*Math.PI/4);
        DC=drehX(DC,0.1*Math.PI/4);
        AD=drehX(AD,0.1*Math.PI/4);
        repaint();
    }

    private void jButton2ActionPerformed(java.awt.event.ActionEvent evt) {
        Vektor1=drehY(Vektor1,0.1*Math.PI/4);
        Vektor2=drehY(Vektor2,0.1*Math.PI/4);
        Vektor3=drehY(Vektor3,0.1*Math.PI/4);
        AB=drehY(AB,0.1*Math.PI/4);
        BC=drehY(BC,0.1*Math.PI/4);
        DC=drehY(DC,0.1*Math.PI/4);
        AD=drehY(AD,0.1*Math.PI/4);
        repaint();
    }

    private void jButton3ActionPerformed(java.awt.event.ActionEvent evt) {
        Vektor1=drehZ(Vektor1,0.1*Math.PI/4);
        Vektor2=drehZ(Vektor2,0.1*Math.PI/4);
        Vektor3=drehZ(Vektor3,0.1*Math.PI/4);
        AB=drehZ(AB,0.1*Math.PI/4);
        BC=drehZ(BC,0.1*Math.PI/4);
        DC=drehZ(DC,0.1*Math.PI/4);
        AD=drehZ(AD,0.1*Math.PI/4);
        repaint();
    }

    /**
     * @param args the command line arguments
     */
    public static void main(String args[]) {
        java.awt.EventQueue.invokeLater(new Runnable() {

            public void run() {
                new Hauptklasse().setVisible(true);
            }
        });
    }
    // Variables declaration - do not modify
    private javax.swing.JButton jButton1;
    private javax.swing.JButton jButton2;
    private javax.swing.JButton jButton3;
    // End of variables declaration
}
 
Zuletzt bearbeitet:

Marco13

Top Contributor
Mal im Ernst: Erwartest du, dass jemand dieses Programm nachvollzieht und einen Essay dazu schreibt, wie du das machen könntest? (Es geht manchmal DOCH um "kluge" (d.h. nachvollziehbare) Programmierung). Bisher kann man darauf kaum mehr antworten als "Kopier dir den code von http://java.sun.com/applets/jdk/1.4/demo/applets/WireFrame/ThreeD.java" oder "Lies dir 3D projection - Wikipedia, the free encyclopedia durch" ...
 

Weiti

Mitglied
Java:
 public double[] drehX(double[] Vektor, double d)
Diese Funktion soll die Matrix um die X-Achse drehen, Formel ist von Drehmatrix ? Wikipedia
Analog für Y und Z-Achse. Dazu nehme ich den Vektor der gedreht werden soll mit der Matrix mal.

Java:
public double[] dim2of(double[] V)
Hier findet die Projektion statt, nach der Formel von 3D projection - Wikipedia, the free encyclopedia
Wobei ich O_x,y,z=(0,0,0) gesetzt habe, da sin 0 = 1, habe ich es in der Formel gar nicht drinstehen.

Java:
final double[] Cam = {300,300,300};
final double[] View = {300,300,300};
Cam = a_x,y,z auf wikipedia
View = c_x,y,z auf wikipedia

Das ganze soll dann in paint() als Linien gezeichnet werden.
Ich versuche keine Java 3D Funktionen zu verwenden.
 
Zuletzt bearbeitet:

Weiti

Mitglied
Ok, danke ich werde mal in den Paketen nach gucken, tut mir Leid das ich nur so spärlich Informationen habe, eine bekannte hat mir nur gesagt einen 3D Würfel darstellen bei dem es auf die Matrixmultiplikation ankommt. Ich melde mich nochmal wenn ich genaueres weiß.
Gruß, Weiti
 

Weiti

Mitglied
Hallo, Hier die Aufgabe. mehr hab ich leider nicht als Informationen.

Ich hoffe es kann mir jemand Tipps geben wie man das implementiert.

2. Programmiert einen drehbaren Wuerfel. Analog zu Jaspers
Programm soll nun auch die dritte Dimension erschlossen
werden. Es soll eine Drehung um die x-Achse, y-Achse
und z-Achse (die aus dem Bildschirm heraus zeigt)
moeglich sein.

Jaspers Formeln entstammen einer Matrixmultiplikation.
Das hatten einige vielleicht schon in Mathematik.

Die Matrizen findet ihr hier:
Drehmatrix ? Wikipedia

Es sind die ersten drei einfachen Matrizen in R3, eine Rotation
um einen beliebigen Vektor erwarte ich nicht.
Wie eine Matrix mit einem Vektor multipliziert wird, steht
im Mathebuch. Bitte arbeitet mit Hilfsvariablen bei der
Multiplikation, damit ihr nicht bereits veraenderte
x-Werte fuer die y-Berechnung verwendet. Das kann man sich
bei Jaspers Programm abgucken.

Der Anhang zeigt eine moegliche Variante.

Schickt ein Programm bis Ferienmitte, das andere bis
Ferienende. Die Reihenfolge ist egal.

Schoene Ferien!
 

Anhänge

  • rotation.jar
    14,1 KB · Aufrufe: 5

Weiti

Mitglied
Hallo, ich habe inzwischen die Lösung:
Es soll einfach keine Perspektive einberechnet werden, dann ist es auch trivial.

Java:
package rotation;

import java.awt.Graphics;

public class RotFrame extends javax.swing.JFrame {

    double xWerte[] = {-100, -100,  100,  100, -100, -100,  100,  100};
    double yWerte[] = {-100, -100, -100, -100,  100,  100,  100,  100};
    double zWerte[] = {-100,  100,  100, -100, -100,  100,  100, -100};
    double mitteX = 400;
    double mitteY = 200;

    /** Creates new form RotFrame */
    public RotFrame() {
        initComponents();
        repaint();
    }
    
    @Override
    public void paint(Graphics graphics)
    {
        super.paint(graphics);
        // A-B
        graphics.drawLine((int)(mitteX + xWerte[0]), (int)(mitteY + yWerte[0]),
                          (int)(mitteX + xWerte[1]), (int)(mitteY + yWerte[1]));
        // B-C
        graphics.drawLine((int)(mitteX + xWerte[1]), (int)(mitteY + yWerte[1]),
                          (int)(mitteX + xWerte[2]), (int)(mitteY + yWerte[2]));
        // C-D
        graphics.drawLine((int)(mitteX + xWerte[2]), (int)(mitteY + yWerte[2]),
                          (int)(mitteX + xWerte[3]), (int)(mitteY + yWerte[3]));
        // D-A
        graphics.drawLine((int)(mitteX + xWerte[3]), (int)(mitteY + yWerte[3]),
                          (int)(mitteX + xWerte[0]), (int)(mitteY + yWerte[0]));
        // A-E
        graphics.drawLine((int)(mitteX + xWerte[0]), (int)(mitteY + yWerte[0]),
                          (int)(mitteX + xWerte[4]), (int)(mitteY + yWerte[4]));
        // B-F
        graphics.drawLine((int)(mitteX + xWerte[1]), (int)(mitteY + yWerte[1]),
                          (int)(mitteX + xWerte[5]), (int)(mitteY + yWerte[5]));
        // C-G
        graphics.drawLine((int)(mitteX + xWerte[2]), (int)(mitteY + yWerte[2]),
                          (int)(mitteX + xWerte[6]), (int)(mitteY + yWerte[6]));
        // D-H
        graphics.drawLine((int)(mitteX + xWerte[3]), (int)(mitteY + yWerte[3]),
                          (int)(mitteX + xWerte[7]), (int)(mitteY + yWerte[7]));
        // E-F
        graphics.drawLine((int)(mitteX + xWerte[4]), (int)(mitteY + yWerte[4]),
                          (int)(mitteX + xWerte[5]), (int)(mitteY + yWerte[5]));
        // F-G
        graphics.drawLine((int)(mitteX + xWerte[5]), (int)(mitteY + yWerte[5]),
                          (int)(mitteX + xWerte[6]), (int)(mitteY + yWerte[6]));
        // G-H
        graphics.drawLine((int)(mitteX + xWerte[6]), (int)(mitteY + yWerte[6]),
                          (int)(mitteX + xWerte[7]), (int)(mitteY + yWerte[7]));
        // H-E
        graphics.drawLine((int)(mitteX + xWerte[7]), (int)(mitteY + yWerte[7]),
                          (int)(mitteX + xWerte[4]), (int)(mitteY + yWerte[4]));
    }

    /** This method is called from within the constructor to
     * initialize the form.
     * WARNING: Do NOT modify this code. The content of this method is
     * always regenerated by the Form Editor.
     */
    @SuppressWarnings("unchecked")
    // <editor-fold defaultstate="collapsed" desc="Generated Code">                          
    private void initComponents() {

        jLabel1 = new javax.swing.JLabel();
        jLabel2 = new javax.swing.JLabel();
        jLabel3 = new javax.swing.JLabel();
        jButton1 = new javax.swing.JButton();
        jButton2 = new javax.swing.JButton();
        jButton3 = new javax.swing.JButton();
        jButton4 = new javax.swing.JButton();
        jButton5 = new javax.swing.JButton();
        jButton6 = new javax.swing.JButton();

        setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);

        jLabel1.setText("x-Achse");

        jLabel2.setText("y-Achse");

        jLabel3.setText("z-Achse");

        jButton1.setText(" < ");
        jButton1.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jButton1ActionPerformed(evt);
            }
        });

        jButton2.setText(" > ");
        jButton2.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jButton2ActionPerformed(evt);
            }
        });

        jButton3.setText(" < ");
        jButton3.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jButton3ActionPerformed(evt);
            }
        });

        jButton4.setText(" > ");
        jButton4.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jButton4ActionPerformed(evt);
            }
        });

        jButton5.setText(" < ");
        jButton5.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jButton5ActionPerformed(evt);
            }
        });

        jButton6.setText(" > ");
        jButton6.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jButton6ActionPerformed(evt);
            }
        });

        javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());
        getContentPane().setLayout(layout);
        layout.setHorizontalGroup(
            layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(layout.createSequentialGroup()
                .addContainerGap()
                .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                    .addComponent(jLabel2, javax.swing.GroupLayout.Alignment.TRAILING, javax.swing.GroupLayout.DEFAULT_SIZE, 95, Short.MAX_VALUE)
                    .addComponent(jLabel1, javax.swing.GroupLayout.Alignment.TRAILING, javax.swing.GroupLayout.PREFERRED_SIZE, 95, javax.swing.GroupLayout.PREFERRED_SIZE)
                    .addComponent(jLabel3, javax.swing.GroupLayout.DEFAULT_SIZE, 95, Short.MAX_VALUE))
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false)
                    .addComponent(jButton5, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                    .addComponent(jButton3, 0, 0, Short.MAX_VALUE)
                    .addComponent(jButton1, javax.swing.GroupLayout.DEFAULT_SIZE, 39, Short.MAX_VALUE))
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false)
                    .addComponent(jButton6, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                    .addComponent(jButton4, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                    .addComponent(jButton2, javax.swing.GroupLayout.DEFAULT_SIZE, 39, Short.MAX_VALUE))
                .addContainerGap(417, Short.MAX_VALUE))
        );
        layout.setVerticalGroup(
            layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(layout.createSequentialGroup()
                .addContainerGap()
                .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                    .addComponent(jLabel1)
                    .addComponent(jButton1)
                    .addComponent(jButton2))
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                    .addComponent(jButton3)
                    .addComponent(jButton4)
                    .addComponent(jLabel2))
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                    .addComponent(jButton5)
                    .addComponent(jLabel3)
                    .addComponent(jButton6))
                .addContainerGap(305, Short.MAX_VALUE))
        );

        pack();
    }// </editor-fold>                        

    private void jButton5ActionPerformed(java.awt.event.ActionEvent evt) {                                         
        // z-Achse, negativ
        double a = -0.1;
        for (int i = 0; i < 8; i++)
        {
            double newx = xWerte[i] * Math.cos(a) - yWerte[i] * Math.sin(a);
            double newy = xWerte[i] * Math.sin(a) + yWerte[i] * Math.cos(a);
            double newz = zWerte[i];
            xWerte[i] = newx;
            yWerte[i] = newy;
            zWerte[i] = newz;
        }
        repaint();
    }                                        

    private void jButton6ActionPerformed(java.awt.event.ActionEvent evt) {                                         
        //z-Achse, positiv
        double a = 0.1;
        for (int i = 0; i < 8; i++)
        {
            double newx = xWerte[i] * Math.cos(a) - yWerte[i] * Math.sin(a);
            double newy = xWerte[i] * Math.sin(a) + yWerte[i] * Math.cos(a);
            double newz = zWerte[i];
            xWerte[i] = newx;
            yWerte[i] = newy;
            zWerte[i] = newz;
        }
        repaint();
    }                                        

    private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {                                         
        // z-Achse, positiv
        double a = 0.1;
        for (int i = 0; i < 8; i++)
        {
            double newx = xWerte[i];
            double newy = yWerte[i] * Math.cos(a) - zWerte[i] * Math.sin(a);
            double newz = yWerte[i] * Math.sin(a) + zWerte[i] * Math.cos(a);
            xWerte[i] = newx;
            yWerte[i] = newy;
            zWerte[i] = newz;
        }
        repaint();
    }                                        

    private void jButton2ActionPerformed(java.awt.event.ActionEvent evt) {                                         
        // z-Achse, positiv
        double a = -0.1;
        for (int i = 0; i < 8; i++)
        {
            double newx = xWerte[i];
            double newy = yWerte[i] * Math.cos(a) - zWerte[i] * Math.sin(a);
            double newz = yWerte[i] * Math.sin(a) + zWerte[i] * Math.cos(a);
            xWerte[i] = newx;
            yWerte[i] = newy;
            zWerte[i] = newz;
        }
        repaint();
    }                                        

    private void jButton3ActionPerformed(java.awt.event.ActionEvent evt) {                                         
        // y-Achse, positiv
        double a = -0.1;
        for (int i = 0; i < 8; i++)
        {
            double newx = xWerte[i] * Math.cos(a) - zWerte[i] * Math.sin(a);
            double newy = yWerte[i];
            double newz = xWerte[i] * Math.sin(a) + zWerte[i] * Math.cos(a);
            xWerte[i] = newx;
            yWerte[i] = newy;
            zWerte[i] = newz;
        }
        repaint();
    }                                        

    private void jButton4ActionPerformed(java.awt.event.ActionEvent evt) {                                         
        // y-Achse, positiv
        double a = 0.1;
        for (int i = 0; i < 8; i++)
        {
            double newx = xWerte[i] * Math.cos(a) - zWerte[i] * Math.sin(a);
            double newy = yWerte[i];
            double newz = xWerte[i] * Math.sin(a) + zWerte[i] * Math.cos(a);
            xWerte[i] = newx;
            yWerte[i] = newy;
            zWerte[i] = newz;
        }
        repaint();
    }                                        

    /**
    * @param args the command line arguments
    */
    public static void main(String args[]) {
        java.awt.EventQueue.invokeLater(new Runnable() {
            public void run() {
                new RotFrame().setVisible(true);
            }
        });
    }

    // Variables declaration - do not modify                     
    private javax.swing.JButton jButton1;
    private javax.swing.JButton jButton2;
    private javax.swing.JButton jButton3;
    private javax.swing.JButton jButton4;
    private javax.swing.JButton jButton5;
    private javax.swing.JButton jButton6;
    private javax.swing.JLabel jLabel1;
    private javax.swing.JLabel jLabel2;
    private javax.swing.JLabel jLabel3;
    // End of variables declaration                   

}
 

Ähnliche Java Themen

Neue Themen


Oben