Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/321.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 创建笔划形状_Java_Swing_Canvas - Fatal编程技术网

Java 创建笔划形状

Java 创建笔划形状,java,swing,canvas,Java,Swing,Canvas,我在BasicStroke Outline=newbasicstroke(10f,50,50)中创建笔划形状时遇到问题。我当前收到的错误是错误: 找不到符号画布。setStroke(轮廓)指向点 我对构造器是新手,所以任何帮助都会很好,我做的唯一类似的事情就是创建Scanner的实例 import javax.swing.JFrame; import java.awt.Graphics; import java.awt.Color; //sets color import java.awt.Ba

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

找不到符号画布。setStroke(轮廓)指向点

我对构造器是新手,所以任何帮助都会很好,我做的唯一类似的事情就是创建
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);
 }
}
无法处理笔划,也没有设置笔划的方法

另一方面,可以处理这个类,应该使用。因此,将图形对象强制转换为Graphics2D对象

e、 g

还可以查看BasicStroke API,因为您没有正确使用构造函数,传入了错误的参数

其他问题:

  • 不要直接在JFrame或其他顶级窗口中绘制
  • 而是在JFrame中显示的JPanel的paintComnponent方法中绘制
  • 三个int BasicStroke构造函数被错误地用作第二个和第三个参数,它们应该是表示笔划对象的cap和join状态的常量
    • 无法处理笔划,也没有设置笔划的方法

      另一方面,可以处理这个类,应该使用。因此,将图形对象强制转换为Graphics2D对象

      e、 g

      还可以查看BasicStroke API,因为您没有正确使用构造函数,传入了错误的参数

      其他问题:

      • 不要直接在JFrame或其他顶级窗口中绘制
      • 而是在JFrame中显示的JPanel的paintComnponent方法中绘制
      • 三个int BasicStroke构造函数被错误地用作第二个和第三个参数,它们应该是表示笔划对象的cap和join状态的常量
      检查此示例:检查此示例:
      @Override
      protected void paintComponent(Graphics g) {
          Graphics2D g2 = (Graphics2D) g;
          g2.setStroke(....); // do it here after casting
      }