Java FillRect()不工作

Java FillRect()不工作,java,jpanel,paintcomponent,Java,Jpanel,Paintcomponent,我正在尝试制作一个程序,在JFrame中绘制绿色的方块,但是当我尝试时,方块是不可见的。我不知道它们是否根本没有被画出来,或者只是因为某种原因看不见 public void paintComponent(Graphics g) { super.paintComponent(g); //make sure nothing happens when at main menu if(level >= 1) { //determine square

我正在尝试制作一个程序,在JFrame中绘制绿色的方块,但是当我尝试时,方块是不可见的。我不知道它们是否根本没有被画出来,或者只是因为某种原因看不见

public void paintComponent(Graphics g)
{
    super.paintComponent(g);
    //make sure nothing happens when at main menu
    if(level >= 1)
    {
        //determine square size
        size[0] = playScreen.getWidth() / squares;
        size[1] = playScreen.getHeight() / squares;
        System.out.println("The width of a single square is " + size[0]);
        System.out.println("The height of a single square is " + size[1]);
        //draw the cubes
        g.setColor(Color.GREEN);
        if(currentView == 0)
        {
            //front view
            for(int i = 0; i < xPosTargets.size(); i++)
            {
                g.fillRect(xPosTargets.get(i)*size[0], zPosTargets.get(i)*size[1], size[0], size[1]);
            }
        }
        else if(currentView == 1)
        {
            //side view
            for(int i = 0; i < xPosTargets.size(); i++)
            {
                g.fillRect((yPosTargets.get(i))*size[0], (zPosTargets.get(i))*size[1], size[0], size[1]);
            }
        }
        else
        {
            //top view
            for(int i = 0; i < xPosTargets.size(); i++)
            {
                g.fillRect((xPosTargets.get(i))*size[0], (squares - zPosTargets.get(i))*size[1], size[0], size[1]);
            }
        }
    }
}
公共组件(图形g)
{
超级组件(g);
//确保在主菜单上时没有发生任何事情
如果(级别>=1)
{
//确定正方形大小
大小[0]=playScreen.getWidth()/方块;
大小[1]=playScreen.getHeight()/方块;
System.out.println(“单个正方形的宽度为”+大小[0]);
System.out.println(“单个正方形的高度为”+大小[1]);
//画立方体
g、 setColor(Color.GREEN);
如果(currentView==0)
{
//前视图
对于(int i=0;i
我曾认为变量的值不正确,但当我尝试使用
System.out.println()
打印它们时,它们正是它们应该的值。变量类型如下所示:
xpostareges
ypostareges
zpostareges
ArrayList
s
size
是一个
int[]
playScreen
是一个
JPanel

squares
是一个
int
,是的,当它第一次应该绘制时,它确实有一个值

也许可以尝试
绘制(图形g)
而不是
绘制组件(图形g)

当事情看起来比我想象的简单得多时,我讨厌它。。。谢谢没问题。如果您想更深入地了解Java绘画,请查看此链接。我已经在框架中添加了一些按钮,但它们在画画结束后是看不见的,直到我用鼠标在上面移动。你知道如何解决这个问题,还是我必须问一个新问题?我不知道你的问题的确切背景,但试着用谷歌搜索“鼠标悬停前无法看到的按钮”,还有很多其他可以帮助你的帖子。