【发布时间】:2012-05-08 22:12:06
【问题描述】:
来自 Qt,我总是使用 QGraphicsScene 与 QGraphicsItem 对象关联来绘制流程图、游戏板等内容。图形场景是小部件,相当于 Qt 的 Swing 组件。这些QGraphicsItem 对象有自己的点击处理程序,因此对图形场景某些部分的点击会自动委托给正确的图形项。
我希望在 Java Swing 中复制这个工作流程。到目前为止,我只找到了一种手动绘制所有内容的方法,这也意味着我必须手动编写点击逻辑。它涉及继承 JPanel 并覆盖 paintComponent 函数,如下所示:
public void paintComponent(Graphics g) {
super.paintComponent(g);
Graphics2D g2 = (Graphics2D)g;
for (int row = 0; row < _numRows; ++row) {
for (int col = 0; col < _numCols; ++col) {
g2.drawRect(2 + _squareSize*col, 2 + _squareSize*row, _squareSize, _squareSize);
}
}
}
Java Swing 是否有类似的面向对象的方式来绘制 2D 图形?
【问题讨论】:
-
我相信您可能正在查看游戏 API,或 ..JOGL 或类似的 API 以获得此类功能。
标签: java swing jpanel graphics2d paintcomponent