在java中绘制图形的最佳实践或标准是什么? 我的Jframe有一个Jpanel和一个包含Polygon(形状)的Class(foo)。 如果我想显示类形状,我应该调用foo.draw(将它传递给graphics2d和其他一些东西)并让它自己绘制(我认为这将是封装?我相信这是首选的?)或者完成所有绘图在我的drawScreen()方法中?
谢谢
答案 0 :(得分:1)
如果Foo永远不会与任何其他图形重叠,例如它是一个标签或一个按钮,然后它应该自己绘制。我建议它扩展JComponent,实现paintComponent(),并使用LayoutManager等添加等。
如果Foo可以与其他图形重叠(比如,它是一些太空游戏而多边形是一个快速移动的小行星朝向地球)那么事情会变得棘手。如果Foo知道如何将自己绘制到Graphics中,我仍然认为最好,但您可能不想扩展JComponent。
选项1:扩展JComponent并实现paintComponent,但在javadocs中注意这不是" real" JComponent,它永远不会使用LayoutManager添加。您甚至可以更改addNotify()以引发异常以防止这种情况发生。
选项2:让Foo实现Icon - 一个用于轻量级绘图的漂亮小界面。
这仍然引出了一个问题, else 需要告诉它自己画画。所以有些东西需要保留这些JComponents或Icons的列表并告诉他们绘制......