gpt4 book ai didi

Java 制作一个调用drawOval 的drawCircle 方法

转载 作者:行者123 更新时间:2023-12-02 00:50:45 26 4
gpt4 key购买 nike

我需要创建一个看起来像这样的drawCircle方法

public void drawCircle(int x, int y, int radius)

以该圆心和半径绘制一个圆。 drawCircle方法需要调用drawOval。我不知道如何从我的drawCircle方法调用drawOval而不将Graphics传递给它。这可能吗?

这是我所拥有的:

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

class test
{
public static void main(String[] args)
{
JFrame frame = new JFrame("test");
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

frame.getContentPane().add(new MyPanel());
frame.pack();
frame.setVisible(true);
}
}
class MyPanel extends JPanel
{

MyPanel()
{
setBackground(Color.WHITE);
setPreferredSize(new Dimension(250,250));
}

public void paintComponent(Graphics page)
{
super.paintComponent(page);
drawCircle(50,50,20);
}

private void drawCircle(int x, int y, int radius)
{
drawOval(x - radius, y - radius, radius*2, radius*2);
}
}

最佳答案

您可以通过调用 swing 组件上的 getGraphics() 来获取图形上下文。但我仍然会创建我的绘图方法来接受图形上下文。

例如

private void drawCircle(Graphics g, int x, int y, int radius) {
g.fillOval(x-radius, y-radius, radius*2, radius*2)
}

或者,

private void drawCircle(int x, int y, int radius) {
getGraphics().fillOval(x-radius, y-radius, radius*2, radius*2)
}

请注意,getGraphics() 可能会返回 null。最好从paint() 方法中调用drawCircle() 方法并将其传递给Graphics 上下文。

例如

public void paint(Graphics g) {
super.paint(g);
drawCircle(g, 10, 10, 5, 5);
}

关于Java 制作一个调用drawOval 的drawCircle 方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3348856/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com