Erste Schritte drawLine Methode der Graphics Klasse

Jack84

Mitglied
Halle alle zusammen,

ich hätte da eine Frage zur drawLine-Methode der Graphics Klasse. So wie ich es verstehe erwartet die Methode 4 Parameter. Die ersten 2 Parameter geben den Anfangspunkt an und die letzten beiden den Endpunkt. Bei einem 300 x 300 Pixel großem Fenster müsste die Methode drawLine(0,0,300,300) im Prinzip einen senkrechten Strich von oben links nach unten rechts darstellen. Mein Strich beginnt jedoch ca. 30 Pixel weiter rechts. Wisst Ihr warum das so ist?
Java:
package de.kap.rest;

import java.awt.Color;
import java.awt.Graphics;

import javax.swing.JFrame;

public class Test extends JFrame{
   
    

    public Test() {
        super("Graphics");
        setSize(300, 300);
        //fenster.setLocation(null);
        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        setVisible(true);
    }
   
    public void paint(Graphics g) {
        g.drawLine(0, 0, 300, 300);
    }
   
    public static void main(String[] args) {
        new Test();
    }

}
 
Nutzt Du Windows oder Linux? Ich frage, weil mir das nach einem Bug aussieht. Unter Linux scheint es wie folgt zu sein: unter Java 8 bezieht sich die Koordinaten auf den Fensterinhalt, d. h. 0,0 beginnt unterhalb der Fensterdekoration (Titlebar). Unter Java 10 beziehen sich die Koordinaten auf das Fenster selbst (inkl. Titlebar). Melde das doch mal bei bugs.openjdk.java.net.
 
Ich nutze Windows 10 64 Bit (inkl. aktueller Updates) und Java 8. Ich glaube deine Erklärung mit der Titelleiste stimmt. Wenn ich dem Strich weiter nach oben folge, dann komme ich ungefähr in der oberen linken Ecke des Fenster an (inkl. Titelleiste). Hoffentlich wird es bei einem zukpnftigen Update gefixt.
Danke. 🙂
 

Zurück
Oben