在JFrame中居中一个矩形

时间:2016-07-19 19:00:37

标签: java swing graphics jframe rectangles

我正在尝试在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);

    }


}

主要:

public class TheMain{


    public static void main(String[] args) {

        Screen screen = new Screen();
        RectDraw rect = new RectDraw();
        screen.add(rect, BorderLayout.CENTER);

}

这是班级屏幕:

    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);

    }
}

那么我应该改变什么才能将这个矩形放在jframe的中心?

谢谢!

1 个答案:

答案 0 :(得分:-1)

您需要覆盖Screen的{​​{1}}方法。

这样你的矩形宽度为50高度100.只需做一些数学运算。

paintComponent