-1

在 java 中绘制图形的最佳实践或标准是什么?我的 Jframe 带有一个 Jpanel 和一个包含多边形(形状)的类(foo)。如果我想显示类的形状,我应该调用 foo.draw(将 graphics2d 和其他一些东西传递给它)并让它自己绘制(我认为这将是封装?我认为这是首选?)或者做所有的绘图在我的 drawScreen() 方法中?

谢谢

4

1 回答 1

1

如果 Foo 不应该与任何其他图形重叠,例如它是一个标签或按钮,那么它肯定应该绘制自己。我建议它扩展 JComponent,实现 paintComponent(),并使用 LayoutManager 等添加。

如果 Foo 可以与其他图形重叠(例如,这是一些太空游戏,而多边形是一颗快速移动的小行星,正朝着地球前进),那么事情就会变得更加棘手。我仍然认为最好是 Foo 知道如何将自己绘制到 Graphics,但您可能不想扩展 JComponent。

选项 1:扩展 JComponent 并实现 paintComponent,但请注意在 javadocs 中这不是“真正的”JComponent,并且它永远不会使用 LayoutManager 添加。您甚至可以更改 addNotify() 以引发异常以防止这种情况发生。

选项 2:让 Foo 实现 Icon - 一个用于轻量级绘图的漂亮小界面。

这仍然引出了问题,需要其他东西告诉它自己绘制。所以有些东西需要保留这些 JComponents 或 Icons 的列表并告诉他们绘制......

于 2013-01-06T19:01:43.623 回答