来自 Qt,我总是QGraphicsScene
与QGraphicsItem
对象结合使用来绘制流程图、游戏板等内容。图形场景是小部件,相当于 Qt 的 Swing 组件。这些QGraphicsItem
对象有自己的点击处理程序,因此对图形场景某些部分的点击会自动委托给正确的图形项。
我希望在 Java Swing 中复制这个工作流程。到目前为止,我只找到了一种手动绘制所有内容的方法,这也意味着我必须手动编写点击逻辑。它涉及继承 aJPanel
并覆盖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 图形?