gpt4 book ai didi

java - 创建描边形状

转载 作者:行者123 更新时间:2023-12-01 21:50:10 26 4
gpt4 key购买 nike

我在 BasicStroke Outline = new BasicStroke(10f, 50, 50); 中创建描边形状时遇到问题。我当前收到的错误是错误:

can't find symbol canvas.setStroke(Outline) pointing to the dot.

我是构造函数的新手,因此任何帮助都会很棒,我所做的唯一与此类似的事情就是创建 Scanner 的实例。

import javax.swing.JFrame;
import java.awt.Graphics;
import java.awt.Color; //sets color
import java.awt.BasicStroke;
import java.awt.Graphics2D;
public class ColoredOlypmicRings extends JFrame
{
//varriables go here


public void paint(Graphics canvas)
{
super.paint (canvas);

canvas.setColor(Color.green);
canvas.drawOval(100,100,100,100); //color green
canvas.setColor(Color.red);
canvas.drawOval(200,200,100,100); //color red
final BasicStroke Outline = new BasicStroke(10f, 50, 50);
canvas.setStroke(Outline);

canvas.drawOval(300,300,200,200);
}

public ColoredOlypmicRings()
{
setSize(600,400);
setDefaultCloseOperation(EXIT_ON_CLOSE);
}

public static void main(String[] args)
{
ColoredOlypmicRings guiWindow = new ColoredOlypmicRings();
guiWindow.setVisible(true);
}
}

最佳答案

Graphics class无法处理笔划,并且没有将其设置为 its API 的方法会告诉你的。

Graphics2D class另一方面可以处理这个类并且应该用来处理它。因此,将 Graphics 对象转换为 Graphics2D 对象。

例如,

@Override
protected void paintComponent(Graphics g) {
Graphics2D g2 = (Graphics2D) g;
g2.setStroke(....); // do it here after casting
}

另请检查 BasicStroke API,因为您没有正确使用构造函数,传递了错误的参数。

其他问题:

  • 不要直接在 JFrame 或其他顶级窗口中绘制。
  • 而是在 JFrame 中显示的 JPanel 的 PaintComnponent 方法中进行绘制。
  • 三个 int BasicStroke 构造函数被误用,因为第二个和第三个参数应该是表示 Stroke 对象的 cap 和 join 状态的常量。

关于java - 创建描边形状,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35353785/

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