来自不同 class 的 JPanel 的彩色背景?

Colour background of JPanel from different class?

尝试使用变量从不同的 class 更改我的 JPanel 的背景颜色。为什么这给我一个错误? (真的是 java 的新手,抱歉...)

import java.awt.Color;

import javax.swing.*;

public class window {

    public window(int x, int y, boolean isVisible, boolean isResizable, Color col){
        JFrame jframe = new JFrame();
        int xSize = x;
        int ySize = y;
        jframe.setSize(xSize, ySize);
        jframe.setVisible(isVisible);
        jframe.setResizable(isResizable);

        JPanel jpanel = new JPanel();
        jframe.add(jpanel);
        jpanel.setSize(xSize - 100, ySize - 100);
        jpanel.setOpaque(true);
        jpanel.setBackground(Color.col);  
        jpanel.setVisible(true);

    }

}

我的主要 class 这样做:

import java.awt.Color;


public class design {

    public static void main(String[] args) {
        window window1 = new window(400, 200, true, true, Color.green);
        window window2 = new window(1000, 720, true, true, Color.red);
    }

}

它给我的错误是 'col cannot be resolved to a field'。我知道这意味着它不明白 col 在那里做什么,但这正是我感到困惑的地方,因为我已经将它声明为一种颜色...

您引用了从构造函数中获取的变量。

只需将 jpanel.setBackground(Color.col); 更改为:

jpanel.setBackground(col);