我正在构建一个简单的国际象棋游戏,并且一直试图在面板上绘制图纸
我准备好了一块板子,板上有面板。这些面板是 70x70 像素,接下来我要做的是使用整个表面来绘制棋子。
我制作了一个扩展 JPanel 的抽象类 Pieces。
public abstract class Piece extends JPanel
其中一个当然是 Pawn :
public class Pawn extends Piece
在 Pawn 类中,我有绘画组件:
public void paintComponent(Graphics g)
{
super.paintComponent(g);
int w = getWidth();
int h = getHeight();
g.setColor(Color.GREEN);
g.fillOval(0, 0, w, h);
System.out.println("height:"+h+" width:"+w);
}
这似乎不起作用。输出打印 height = 10px 和 width = 10px; ....但它应该是 70px 和 70px。我还看到画在我面板内的 10x10 正方形内的绿色椭圆形......
我尝试了一个 setSize(70,70) 并没有真正做到这一点......我也尝试了 SetPreferredSize 但它也没有真正奏效。我真的很想保留我的抽象类和子类......
@@@ 编辑 @@@ 我再次使用了 setPreferredSize,现在我可以在 Jpanel 上绘制我的绿色圆圈了。但是仍然存在错误,因为它不是使用的 Jpanel 的整个表面......顶部仍然存在间隙,截图: