Qtから来て、私は常にフローチャート、ゲームボードなどのようなものを描くためにオブジェクトとQGraphicsScene
関連して使用します。QGraphicsItem
グラフィックシーンはウィジェットであり、QtはSwingコンポーネントに相当します。これらのQGraphicsItem
オブジェクトには独自のクリックハンドラーがあるため、グラフィックスシーンの特定の部分のクリックは自動的に正しいグラフィックスアイテムに委任されます。
このワークフローをJavaSwingで複製したいと思っています。これまでのところ、すべてを手動でペイントする方法しか見つけていません。これは、クリックロジックを手動でプログラムする必要があることも意味します。次に示すように、 aをサブクラス化し、関数を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グラフィックスを描画するための同様のオブジェクト指向の方法がありますか?