ArithmeticException bei drawLine ???

Siassei

Bekanntes Mitglied
Servus,

ich erhalte bei folgenden Code eine java.lang.ArithmeticException

Es handelt sich um einen Abschnitt, der mittels java.awt.Graphics2D zeichnet.
[Java]Console.println(pos)
Console.println(minY)
Console.println(maxY)
g.drawLine(pos, minY, pos, maxY)[/Java]

Ausgabe der Console:
Code:
-50
-50
50

Fehlermeldung:
Code:
Exception in thread "AWT-EventQueue-0" java.lang.ArithmeticException: / by zero
        at sun.java2d.pisces.Stroker.lineLength(Stroker.java:685)
        at sun.java2d.pisces.Stroker.finish(Stroker.java:699)
        at sun.java2d.pisces.Stroker.end(Stroker.java:675)
        at sun.java2d.pisces.PiscesRenderingEngine.pathTo(PiscesRenderingEngine.java:256)
        at sun.java2d.pisces.PiscesRenderingEngine.strokeTo(PiscesRenderingEngine.java:231)
        at sun.java2d.pisces.PiscesRenderingEngine.strokeTo(PiscesRenderingEngine.java:181)
        at sun.java2d.pisces.PiscesRenderingEngine.getAATileGenerator(PiscesRenderingEngine.java:326)
        at sun.java2d.pipe.AAShapePipe.renderPath(AAShapePipe.java:93)
        at sun.java2d.pipe.AAShapePipe.draw(AAShapePipe.java:61)
        at sun.java2d.pipe.PixelToShapeConverter.drawLine(PixelToShapeConverter.java:52)
        at sun.java2d.SunGraphics2D.drawLine(SunGraphics2D.java:2130)
...
 

Siassei

Bekanntes Mitglied
Habe nun alles zusammengesucht
Java:
import java.awt.*;
import javax.swing.*;

/**
 *
 * @author Thomas Enzinger
 */
public class Test extends javax.swing.JFrame {

    public Test() {

        this.setPreferredSize(new Dimension(800,800));
        this.setMinimumSize(new Dimension(800,800));

        this.setLayout(new BorderLayout());
        add(new Ab(), BorderLayout.CENTER);
        pack();
    }                    

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

            public void run() {
                new Test().setVisible(true);
            }
        });
    }

    static class Ab extends JPanel {

        public Ab() {
            this.setVisible(true);
        }

        @Override
        public void paintComponent(java.awt.Graphics g) {
            super.paintComponents(g);
            java.awt.Graphics2D g2 = (java.awt.Graphics2D) g;

            g2.setColor(Color.yellow);
            g2.fill(g.getClipBounds());

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

            g2.translate(0, this.getSize().height); // left bottom
            g2.scale(0.0, -1.0); // y-direction to top

            g2.translate(10, 10);

            g2.scale(0.19607843137254902, 0.20920502092050208);
            g2.translate(50, 50);

            g2.setStroke(new BasicStroke(1.0f));
            g2.setColor(Color.GRAY.brighter());

            g2.drawLine(-50, -50, -50, 50);
        }
    }             
}
 

eRaaaa

Top Contributor
Also bei mir gibts keine Exception, vermutlich weil ich nicht das OpenJDK benutze *g*...aber wieso willst du da überhaupt zeichnen? Ergibt doch gar keinen Sinn, sichtbar ist es eh dort eh nicht (oder hab ich was übersehen? )?!
 

Siassei

Bekanntes Mitglied
Also bei mir gibts keine Exception, vermutlich weil ich nicht das OpenJDK benutze *g*...aber wieso willst du da überhaupt zeichnen? Ergibt doch gar keinen Sinn, sichtbar ist es eh dort eh nicht (oder hab ich was übersehen? )?!
naja, vielleicht liegt es daran.

Jedenfalls habe ich das
g2.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON);
im verdacht. Wieso auch immer.
 
Ähnliche Java Themen

Ähnliche Java Themen

Neue Themen


Oben