Ich habe ein Problem mit dem Zeichnen in Java. Java zeichnet nicht pixelgenau, und deshalb sind Formen, die ich zeichnen will größer als sie sein sollen, und wenn ich eine gerade Linie zeichnen will, indem ich einzelne Pixel aneinander reihe, dann geht das nicht. Es bleiben einige Pixel aus. Siehe folgendes Beispielprogramm:
So sieht das bei mir aus:
Das Quadrat soll eigentlich nur 20 Pixel breit und hoch sein, aber es ist in Wirklichkeit 25 Pixel breit und hoch. Darunter soll eine 9 Pixel lange, durchgezogene Linie sein, aber stattdessen werden drei Striche gezeichnet.
Ist das nur bei mir so? Habe ich vielleicht eine fehlerhafte Java-Version? Ich benutze javac.exe und java.exe Version 10.0.1
Wenn das so normal ist, gibt es vielleicht eine Alternative in Java, wo ich pixelgenau zeichnen kann?
Java:
import javax.swing.*;
import java.awt.*;
public class Programm1
{
public static void main(String[] args)
{
JFrame frame = new JFrame();
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.add(new Programm1Component());
frame.pack();
frame.setVisible(true);
}
}
class Programm1Component extends JComponent
{
public void paintComponent(Graphics g)
{
g.fillRect(1,1,20,20);
g.drawRect(1,25,0,0);
g.drawRect(2,25,0,0);
g.drawRect(3,25,0,0);
g.drawRect(4,25,0,0);
g.drawRect(5,25,0,0);
g.drawRect(6,25,0,0);
g.drawRect(7,25,0,0);
g.drawRect(8,25,0,0);
g.drawRect(9,25,0,0);
}
public Dimension getPreferredSize()
{
return new Dimension(300,300);
}
}
So sieht das bei mir aus:

Das Quadrat soll eigentlich nur 20 Pixel breit und hoch sein, aber es ist in Wirklichkeit 25 Pixel breit und hoch. Darunter soll eine 9 Pixel lange, durchgezogene Linie sein, aber stattdessen werden drei Striche gezeichnet.
Ist das nur bei mir so? Habe ich vielleicht eine fehlerhafte Java-Version? Ich benutze javac.exe und java.exe Version 10.0.1
Wenn das so normal ist, gibt es vielleicht eine Alternative in Java, wo ich pixelgenau zeichnen kann?