创建一个描边的形状

时间:2016-02-12 02:26:14

标签: java swing canvas

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

  

找不到符号canvas.setStroke(Outline)指向点。

我是构造函数的新手,所以任何帮助都会很棒,我做的唯一一件事就是创建一个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);
 }
}

1 个答案:

答案 0 :(得分:3)

Graphics class无法处理笔划,也没有设置方法,因为its API会告诉您。

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

如,

<textarea>

</textarea>

同时检查BasicStroke API,因为你没有正确使用构造函数,传入不正确的参数。

其他问题:

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