Ich versuche, ein Rechteck in der Mitte eines Jframe zu erstellen. Ich habe es mit Einsätzen versucht, aber ich hatte kein Glück.Zentrieren eines Rechtecks in JFrame
public class RectDraw extends JComponent{
Shape rect;
public void paint(Graphics g){
Graphics2D graph2 = (Graphics2D)g;
graph2.setRenderingHint(RenderingHints.KEY_ANTIALIASING,
RenderingHints.VALUE_ANTIALIAS_ON);
rect = new Rectangle2D.Float(50,50,15,15);
graph2.setPaint(Color.BLACK);
graph2.fill(rect);
graph2.draw(rect);
}
}
Und der Haupt:
public class TheMain{
public static void main(String[] args) {
Screen screen = new Screen();
RectDraw rect = new RectDraw();
screen.add(rect, BorderLayout.CENTER);
}
Und das ist die Klasse Bildschirm:
public class Screen extends JFrame{
public Screen(){
this.setSize(500, 500);
this.setDefaultCloseOperation(EXIT_ON_CLOSE);
this.setLocationRelativeTo(null);
this.setResizable(false);
this.setTitle("Testing");
this.getContentPane().setBackground(Color.GRAY);
this.setVisible(true);
}
}
Also, was ich ändern, um sollte ich habe die folgende Klasse für das Rechteck gemacht setze dieses Rechteck in die Mitte des Jframes?
Danke!
'(getWidth() - width)/2' wird verwendet, da der' x' Wert von 'Rectangle2D' das Rechteck horizontal zentriert, wenn 'width' als Rechteckbreite verwendet wird. Rate mal, wie du die Höhe zentrieren würdest? –