私はこれまでのところ同様の質問をしましたが、回答は得られませんでした。元の質問は、クリックした後にシェイプの色を変更することでした。しかし、私はそれが描画された後の形にアクセスする方法に困惑しています。描画後の色はjava.awt.Graphicsで変更されます
これは私のpaintComponentメソッド
@Override
protected void paintComponent(Graphics graph) {
super.paintComponent(graph);
Graphics2D g = (Graphics2D) graph;
// smooth graphics
g.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON);
// moving to the middle of the panel
g.translate(this.getWidth()/2, this.getHeight()/2);
// painting colored arcs
for(int i = 0; i < 4; i++) {
g.setColor(dimColors[i]);
g.fill(arcs[i]);
}
// painting borders
g.setColor(Color.BLACK);
g.setStroke(new BasicStroke(5F));
g.drawLine(-98, 0, 98, 0);
g.drawLine(0, -98, 0, 98);
g.draw(circle);
// painting central white circle
g.setColor(Color.WHITE);
g.fill(smallCircle);
g.setColor(Color.BLACK);
g.draw(smallCircle);
}
ある弧[]配列は、パネル上に描画されているARC2D年代の束が含まれています。私の質問は今、アーク[0]のような色を変更したいのですが、どうすればいいですか?
ありがとうございます!
EDIT:それを描画するときにアークが[1] dimColorsは、[1]色として設定しているので、私は今、このMouseAdapterのイベントに
private class MyMouseAdapter extends MouseAdapter {
public void mousePressed(MouseEvent e) {
Point p = e.getPoint();
Component c = getComponentAt(p);
Graphics g = c.getGraphics();
dimColors[1] = Color.RED;
paintComponent(g);
}
}
を持っており、それは動作しますが、それは、[1]アークの色を変更します。
しかし、右の円弧がクリックされたかどうかを確認する方法はまだ分かりません。今すぐグラフィックパネルのどこかをクリックすると、その円弧の色が変わります
私のメインポストを編集しました。ありがとう、私は今、アークを再描画することができますが、私はまだクリックしたものをチェックする方法はわかりません...あなたは何か考えていますか?ありがとう! – zeta
これは別の質問です。 –