如何在JFrame中居中绘制东西?

时间:2019-04-11 17:55:26

标签: java jframe

我试图居中绘制由JFrameColor绘制的椭圆,但是我不知道该怎么做。

我知道我可以通过使用Jframe#width()来获得宽度,但是我不知道如何在方法paintComponent中绘制圆圈。如果我向Method添加参数,则JFrame无效。

import javax.swing.*;
import java.awt.Graphics;
import java.awt.Color;
public class AU19b extends JPanel{
   protected void paintComponent(Graphics g){
        g.setColor(Color.RED);
        g.drawOval(10,10, 50, 50);
   }
    public static void main(String[] args){
        JFrame f = new JFrame("Sebastians GUI");
        f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        f.setSize(400, 250);
        f.add(new AU19b());
        f.setVisible(true);
    }
}

1 个答案:

答案 0 :(得分:0)

使用它绘制半径为50的圆。

import javax.swing.*;
import java.awt.Graphics;
import java.awt.Color;

public class AU19b extends JPanel{

    @Override
    public void paintComponent(Graphics g){
        g.setColor(Color.RED);

        int radius = 50;

        g.drawOval(getWidth()/2 - radius,getHeight()/2 - radius, 2*radius, 2*radius);
    }
    public static void main(String[] args){
        JFrame f = new JFrame("Sebastians GUI");
        f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        f.setSize(400, 250);
        f.add(new AU19b());
        f.setVisible(true);
    }
}