Java FillRect()不工作
我正在尝试制作一个程序,在JFrame中绘制绿色的方块,但是当我尝试时,方块是不可见的。我不知道它们是否根本没有被画出来,或者只是因为某种原因看不见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
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绘画,请查看此链接。我已经在框架中添加了一些按钮,但它们在画画结束后是看不见的,直到我用鼠标在上面移动。你知道如何解决这个问题,还是我必须问一个新问题?我不知道你的问题的确切背景,但试着用谷歌搜索“鼠标悬停前无法看到的按钮”,还有很多其他可以帮助你的帖子。