0
我試圖做一個程序,其中綠色方塊繪製在JFrame中,但是當我嘗試它時,方塊不可見。我不知道他們是不是因爲某種原因被抽中或者只是不可見。FillRect()不工作
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
,是的,它實際上有一個值時,它應該被畫首次
當我覺得事情似乎比我想象的更容易時,我討厭它......謝謝! – Koen
沒問題。如果您想更深入地瞭解Java中的繪畫,請查看此鏈接。 https://docs.oracle.com/javase/tutorial/uiswing/painting/closer.html – Chara
我已經在框架中添加了一些JButton,但是在繪製運行後它們不可見,直到我用鼠標移過它們。你知道如何解決這個問題嗎?還是我不得不問一個新的問題呢? – Koen