FillRect() 不工作
FillRect() not working
我正在尝试制作一个在 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]);
}
}
}
}
我认为变量的值不正确,但是当我尝试用 System.out.println()
打印它们时,它们正是它们应该的值。变量类型如下:
xPosTargets
、yPosTargets
和 zPosTargets
是 ArrayList<Integer>
size
是一个 int[]
playScreen
是 JPanel
squares
是一个 int
,是的,它确实有一个值,当它应该是第一次绘制时
也许尝试 paint(Graphics g)
而不是 paintComponent(Graphics g)
?
我正在尝试制作一个在 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]);
}
}
}
}
我认为变量的值不正确,但是当我尝试用 System.out.println()
打印它们时,它们正是它们应该的值。变量类型如下:
xPosTargets
、yPosTargets
和 zPosTargets
是 ArrayList<Integer>
size
是一个 int[]
playScreen
是 JPanel
squares
是一个 int
,是的,它确实有一个值,当它应该是第一次绘制时
也许尝试 paint(Graphics g)
而不是 paintComponent(Graphics g)
?