我是第一次将JPanel添加到JFrame中,需要一些帮助。我创建了一个类,在这个类中绘制了一个大矩形。这个类是JPanel的子类。另一个类是JFrame的子类。当我创建一个该类的新JPanel对象时,矩形显示在框架上,但它比平常小得多,并且位置不正确。以下是代码,有什么问题?
public void gameRender() {
if( dbImage == null ) {
dbImage = createImage( dbWIDTH, dbHEIGHT );
if( dbImage == null )
return;
}
//else
dbg = dbImage.getGraphics();
dbg.setColor( Color.white );
dbg.fillRect( 0, 0, dbWIDTH, dbHEIGHT );
dbg.setColor( Color.black );
这是程序中被while循环不断调用的方法的一部分(类似于动画循环)。这是JPanel子类的一部分,这段代码用于双缓冲。dbWIDTH为500,dbHEIGHT为400。
这段代码来自JFrame子类,该子类试图创建一个JPanel子类的对象(JPanel子类名为WalkAndJump3)。
wj = new WalkAndJump3();
Container c = getContentPane();
c.setLayout( new FlowLayout() );
c.add( wj );
我尝试通过重写paintComponent方法来实现,就像在JPanel子类中所做的那样,但它并没有起作用。 我将WalkAndJump3 wj声明为实例变量,因此第一行不应该是问题。出了什么问题?再一次,问题在于绘制的矩形太小且位置不正确。