将多个JComponents绘制到一个框架

我试图在同一个窗口上绘制多个汽车对象,但看起来它们正在相互覆盖。


这是我在Car类中重写的paintComponent方法


public void paintComponent(Graphics g) {

    Graphics2D g2 = (Graphics2D) g;


    g2.setColor(wheelColor);

    g2.fill(leftWheel);

    g2.fill(rightWheel);

    g2.setColor(bodyColor);

    g2.fill(body);

    g2.fill(cab);

}

在我的Viewer类中:


JFrame f = new JFrame();

initializeFrame(f);


Car x = new Car(100, 100);

Car y = new Car(300, 300);


f.add(x);

f.add(y);

虽然坐标似乎不同,但只绘制了最后一辆车。


有什么建议?谢谢


慕姐4208626
浏览 362回答 2
2回答

呼啦一阵风

但似乎他们互相覆盖。JFrame的默认布局管理器是BorderLayout。因此,默认情况下,您将所有组件添加到BorderLayout的CENTER。但是,您只能向CENTER添加一个组件,因此只显示最后一个Car。将布局管理器更改为FlowLayout以查看差异。或者,看起来你试图在随机位置绘制汽车,在这种情况下你应该使用“空”布局。然后,您将负责设置每个汽车组件的大小/位置。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java