我试图在同一个窗口上绘制多个汽车对象,但看起来它们正在相互覆盖。这是我在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);虽然坐标似乎不同,但只绘制了最后一辆车。有什么建议?谢谢
2 回答
呼啦一阵风
TA贡献1802条经验 获得超6个赞
但似乎他们互相覆盖。
JFrame的默认布局管理器是BorderLayout。因此,默认情况下,您将所有组件添加到BorderLayout的CENTER。但是,您只能向CENTER添加一个组件,因此只显示最后一个Car。
将布局管理器更改为FlowLayout以查看差异。
或者,看起来你试图在随机位置绘制汽车,在这种情况下你应该使用“空”布局。然后,您将负责设置每个汽车组件的大小/位置。
添加回答
举报
0/150
提交
取消