我有一個 if 條件可以在我的paintComponent 中贏得一場比賽,我想知道我應該如何繪制它以顯示在我的 Jpanel Java GUI 中?
@Override
public void paintComponent (Graphics g){
Graphics2D g2 = (Graphics2D) g;
Graphics2D buffer = world.createGraphics();
buffer.setColor(Color.black);
buffer.fillRect(0, 0, GameConstants.WORLD_WIDTH, GameConstants.WORLD_HEIGHT);
this.p1.drawImage(buffer);
this.p2.drawImage(buffer);
this.p3.drawImage(buffer);
this.p4.drawImage(buffer);
this.s1.drawImage(buffer);
this.a1.drawImage(buffer);
this.a2.drawImage(buffer);
this.a3.drawImage(buffer);
this.a4.drawImage(buffer);
//g2.drawImage(this.Background,0,0,null);
g2.drawImage(world,0,0,null);
if (this.p1.x == 6000 && this.p2.x == 6000 && this.p3.x == 6000 && this.p4.x == 6000){
g2.drawString("YOU WIN!!!");
}
}
uj5u.com熱心網友回復:
要繪制字串,您必須指定坐標。
g.setFont(); // set a font if you wish use -- new Font(...)
if (some condition) {
g.drawString(str, x, y);
}
但看起來你做錯了很多事情。首先,你應該把super.paintComponent(g);你的第一個陳述句放在paintComponent方法中。而且您應該只使用由提供的圖形背景關系進行繪畫paintComponent 另請注意
- 坐標必須在您正在繪制的容器的邊界內,并且
- 您必須使用
g.setColor()引數來自 Color 類的位置來設定顏色。否則,您可能正在使用與容器背景相同的默認顏色進行繪制,因此不會被看到。
您可能還想考慮使用JOptionPane來顯示獲勝訊息或各種訊息中的任何其他訊息。還檢查了Java教程上的繪畫和使用的例子JOptionPane。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/379361.html
