【发布时间】:2016-02-16 10:40:31
【问题描述】:
我一直在四处寻找以更好地了解我正在尝试做的事情,但运气不佳。我假设答案比我意识到的要简单得多。
我正在为一个班级项目制作棋盘游戏,并且正在使用 JPanel 来显示图形(显然)。在paintComponent 中,我不只是在一个位置创建所有东西,我想将我的图形外部化到一个自己的类中,我可以在paintComponent 中简单地实例化它。尽量保持逻辑上的分离和清洁。
我的 Graphics2D 看起来想要一个为其 .add() 方法实现 Shape 的类。如果这是正确的,那么假设我实现了 Shape,paintComponent 在绘制我的形状时在寻找什么?我需要任何特定的方法还是只使用构造函数?或者,我的所有图形类都应该只使用 JPanel 并使用它们自己的paintComponent 吗?这对我来说感觉有点占用内存和错误。
到目前为止我看到的所有例子都是一样的......
public void paintComponent(Graphics g) {
super.paintComponent(g);
Graphics2D g2 = (Graphics2D) g;
// Create shapes here which combine to form
// a larger object...
g2.add(a circle...);
g2.add(a rectangle...);
g2.add(other shapes...);
}
而我真正想做的是……
public void paintComponent(Graphics g) {
super.paintComponent(g);
Graphics2D g2 = (Graphics2D) g;
// Intantiate robust graphics object from external class.
g2.add(graphicsObject);
}
所以我最终只是按顺序添加项目,游戏板表面层,其上的图块,然后是用于放置在图块中的游戏代币。
非常欢迎智慧之言和优秀链接。提前致谢。
【问题讨论】:
标签: java swing graphics awt paintcomponent