Java中的随机形状生成器

Java中的随机形状生成器,java,graphics,drawing,shape,Java,Graphics,Drawing,Shape,我试图建立一个程序,其中至少有10个形状是随机创建的,并给予随机的地方。到目前为止,我有: import javax.swing.JFrame; public class RandomShapeViewer { public static void main(String[] args) { JFrame frame = new JFrame(); final int FRAME_WIDTH = 300; final int F

我试图建立一个程序,其中至少有10个形状是随机创建的,并给予随机的地方。到目前为止,我有:

import javax.swing.JFrame;

public class RandomShapeViewer
{
    public static void main(String[] args)
    {
        JFrame frame = new JFrame();

        final int FRAME_WIDTH = 300;
        final int FRAME_HEIGHT = 400;

        frame.setSize(FRAME_WIDTH, FRAME_HEIGHT);
        frame.setTitle("RandomShapeViewer");
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

        RandomShapesComponent component = new RandomShapesComponent();
        frame.add(component);

        frame.setVisible(true);
    }
}

现在我有几个问题:

  • 有可能在一种情况下画多条线(从而创建一个三角形)吗?如果有,我该怎么做
  • 我还收到以下错误消息: 发现1个错误: 文件:D:\Downloads\Wallpaper\randomShapeComponent.java[行:14] 错误:找不到符号 符号:方法图形() 位置:RandomShapeGenerator类型的变量r
  • 还有一个关于我第一个问题的后续问题:我怎样才能用纯色填充椭圆形和长方形等
  • 是否可以在一种情况下绘制多条直线(从而创建三角形)

    当然。只需调用
    drawine
    3次,坐标为三角形。不要忘记每个
    案例中的
    break
    语句

    我还收到此错误消息1发现错误

    您没有所有必要的导入,或者源代码中有输入错误。您确定
    Graphics()
    是用大写字母拼写的吗

    我怎样才能用纯色填充椭圆形和矩形等

    使用
    fillRectangle
    和/或
    fillOval
    API

    是否可以在一种情况下绘制多条直线(从而创建三角形)

    当然。只需调用
    drawine
    3次,坐标为三角形。不要忘记每个
    案例中的
    break
    语句

    我还收到此错误消息1发现错误

    您没有所有必要的导入,或者源代码中有输入错误。您确定
    Graphics()
    是用大写字母拼写的吗

    我怎样才能用纯色填充椭圆形和矩形等

    使用
    fillRectangle
    和/或
    fillOval
    API

    import javax.swing.JComponent;
    import java.awt.Graphics;
    import java.awt.Graphics2D;
    
    public class RandomShapesComponent extends JComponent
    {
        public void paintComponent(Graphics g)
        {
            Graphics2D g2 = (Graphics2D) g;
            RandomShapeGenerator r = new RandomShapeGenerator(getWidth(), getHeight());
    
            for (int i = 1; i <= 10; i++)
               g2.draw(r.Graphics());
        }
    }
    
    import java.awt.Shape;
    import java.awt.geom.Ellipse2D;
    import java.awt.geom.Line2D;
    import java.awt.geom.Rectangle2D;
    import java.util.Random;
    import java.awt.*;
    import java.awt.event.*;
    
    public class RandomShapeGenerator {
    
        int width, height;
        Random ran = new Random();
    
        public RandomShapeGenerator(int i, int j)
        {
            int width = i;
            int height = j;
        }
    
        public void paintComponent(Graphics g)
        {
            switch(ran.nextInt(10)) {
                default:
                case 0:   g.drawOval(10, 20, 10, 20);
                case 1:   g.drawLine(100, 100, 150, 150);
                case 2:   g.drawRect(30,40,30,40);
            }
        }
    }