java - 用paint实例化一个类来制作一个正方形

标签 java swing object awt paint

我创建了一个名为 Robit 的类(故意拼写错误),它使用 paint(Graphics g) 方法定义了一个正方形。我正在扩展 JFrame,一切正常,我只是无法绘制方 block

import java.awt.*;

public class Robit {

int[] location = new int[4];
double[] vectors = new double[2];
Color mainColor;

    public Robit(Color color, int x) {
        mainColor = color;
        switch (x) {
            case 0:
                location[0] = 50;
                break;
            case 1:
                location[0] = 700;
                break;
            default:
                location[0] = 350;
                break;
        }
        location[1] = 400;
        location[2] = 50;
        location[3] = 50;

    }

    public void paint(Graphics g) {
        g.setColor(mainColor);
        g.fillRect(location[0], location[1], location[2], location[3]);

    }
    public int getX() {
        return location[0];
    }

    public int getY() {
        return location[1];
    }

}

`这就是我实例化的类,这就是我创建它的地方 导入java.awt.Color; 导入 javax.swing.*;

public class Frame extends JFrame {
    public Frame(){
        setLayout(null);


        Robit r1 = new Robit(Color.red, 0);
        Robit r2 = new Robit(Color.blue, 1);


    }
}

和主类

import javax.swing.JFrame;

public class App {

    public static void main(String[] args) {
        Frame f = new Frame();
        f.setSize(800, 450);
        f.setResizable(false);
        f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        f.setVisible(true);

    }
}

最佳答案

您没有在 Robit 类上调用 paint 方法。请尝试以下操作:

public class Frame extends JFrame {
   protected Robit r1;
   protected Robit r2;
   public Frame(){
       setLayout(null);

      r1 = new Robit(Color.red, 0);
      r2 = new Robit(Color.blue, 1);
   }

   public void paint(Graphics g)
   {
      super.paint(g);
      r1.paint(g);
      r2.paint(g); 
   }
}

关于java - 用paint实例化一个类来制作一个正方形,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28415694/

相关文章:

java - 如何从 JTextfield 获取文本并将其显示在 JTextArea 上

java - 使用对象数组/对象数组求平均值

java - 如何使用 Netbeans 打开非 Netbeans Java 项目?

java - Android:创建可循环的铃声

java - 这是一个合适的 Android 游戏循环吗?

javascript - 如何拥有动态增长的自定义对象的 Javascript 数组?

javascript - 从二维数组创建对象数组

java - 使用 Java 创建菜单 UI

java - 不知道为什么我的 gui 应用程序出现 nullpointerException

java - 如何从 Java Swing 应用程序在默认浏览器中打开 HTML 文件?