有什么办法可以在 paintComponent 中获取参数吗?

Is there any way that I can get a parameter in paintComponent?

我对如何在 paintComponent 方法中创建其他参数有疑问。

我还没有找到其他方法。

import javax.swing.*;
import java.awt.*;

public class Interface extends JPanel
{    
    protected void paintComponent(Graphics g *here(not part of code btw)*) {
        super.paintComponent(g);
        g.setColor(Color.orange);
        g.fillRect(0, 0, 100, 100);
    }

    public void CreateWindow(String name, int Xsize, int Ysize) {

        //laver et JFrame og klader det "frame" !

        JFrame frame= new JFrame(); 

        frame.setTitle(name);

        frame.setSize(Xsize, Ysize);
        frame.setLocation(200, 200);
        frame.setVisible(true);
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        frame.setResizable(false);

        Interface JPanel = new Interface();
        frame.add(JPanel);
        Graphics Grafik = getGraphics();

        paintComponent(Grafik);
    }
}

当我 运行 带有参数的代码不会绘制矩形。

但如果只有 Graphics 参数,它 运行 没问题。

如您在Javadoc中所见,JComponent 中只有一个定义的paintComponent 方法。这意味着有 not 一种方法可以做到这一点,而无需创建自己的 JComponent 和 JComponent 的扩展(subclasses)(这将不必要地复杂和困难).相反,请考虑您可以使用 class 中的字段来存储进入方法 paintComponent 时所需的持久状态。另一方面,临时变量最好定义为方法的局部变量。

此外,将您的 class 命名为 Interface 并不是一个好习惯,因为 interface 是 Java 中的保留 keyword

tl;dr - 本质上,没有。使用 fields/local 个变量来存储您的附加数据。