Как центрировать нарисованные вещи в JFrame? - PullRequest
0 голосов
/ 11 апреля 2019

Я пытаюсь центрировать овал, нарисованный с помощью JFrame & Color, но я не знаю, как бы я это сделал.

Я знаю, что могу получить ширину, используя Jframe#width(), но я не знаю, как это сделать в методе paintComponent, где я рисую свой круг. Если я добавлю параметр в метод, 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 голосов
/ 11 апреля 2019

Используйте это, чтобы нарисовать круг с радиусом 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);
    }
}

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...