Hallo, ich habe schon seit längerem das Problem, dass wenn ich in einem JFrame mein JLabel erstellt habe und anfange zb. ein Rechteck zu zeichnen so ist alles etwas verzerrt. Will ich zum beispiel eine Linie in der Mitte haben so ist diese nicht mittig, sondern nach rechts verschoben. Zudem sind alle anderen Sachen auch etwas nach unten verschoben.
Ich programmieren außerdem noch nicht lange und gucke mir deshalb hin und wieder mal ein Tutorial an. Auch wenn ich den Code genau wie im Tutorial gezeigt wird eingebe ist bei mir alles ein bisschen verschoben.
Wenn ich den JFrame etwas größer als das JLabel mache passt es etwa, aber es ist sehr mühselig jedes mal auszuprobieren um wie viel Pixel ich den JFrame vergrößern muss.
Was kann ich tun, dass nicht alles verschoben ist.
Bei diesem Code ist zum beispiel die Mittellinie nicht mittig
Die Gui Class
Die Draw Class
Ich programmieren außerdem noch nicht lange und gucke mir deshalb hin und wieder mal ein Tutorial an. Auch wenn ich den Code genau wie im Tutorial gezeigt wird eingebe ist bei mir alles ein bisschen verschoben.
Wenn ich den JFrame etwas größer als das JLabel mache passt es etwa, aber es ist sehr mühselig jedes mal auszuprobieren um wie viel Pixel ich den JFrame vergrößern muss.
Was kann ich tun, dass nicht alles verschoben ist.
Bei diesem Code ist zum beispiel die Mittellinie nicht mittig
Die Gui Class
Java:
package gui;
import variables.vaGeneral;
import javax.swing.*;
import static variables.vaGeneral.d;
import static variables.vaGeneral.jf;
public class guiGui {
public guiGui() {
jf = new JFrame();
jf.setSize(vaGeneral.width, vaGeneral.height);
jf.setTitle(vaGeneral.title);
jf.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
jf.setResizable(false);
jf.setLocationRelativeTo(null);
jf.addKeyListener(new listener.liKeyListener());
d = new guiDraw();
d.setBounds(0,0, vaGeneral.width, vaGeneral.height);
d.setSize(vaGeneral.width,vaGeneral.height);
d.setVisible(true);
jf.add(d);
jf.requestFocus();
jf.setVisible(true);
}
}
Die Draw Class
Code:
package gui;
import variables.vaGeneral;
import javax.swing.*;
import java.awt.*;
public class guiDraw extends JLabel {
protected void paintComponent(Graphics g) {
super.paintComponent(g);
Graphics2D g2d = (Graphics2D) g;
g2d.setRenderingHint(RenderingHints.KEY_ANTIALIASING,RenderingHints.VALUE_ANTIALIAS_ON);
//Background
g.setColor(new Color(3, 3, 3));
g.fillRect(0,0,vaGeneral.width,vaGeneral.height);
//Farbe
g.setColor(Color.WHITE);
//Mittellinie
for (int i = 0; i < 30; i++) {
g.fillRect(vaGeneral.width/2-5,i*20,10,10);
}
}
}
Zuletzt bearbeitet: