我曾在这里问过一个类似的问题,但没有得到答复。 最初的问题是在点击后改变形状的颜色。 但是,我对如何在选取后完全进入形状感到困惑。
这是我的油漆对应方法。
@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:我现在请我参加这次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);
}
}
而且,它改变了北极圈子的颜色,因为北极圈(北极圈)在绘画时将北极圈的颜色划为颜色。
然而,我仍然无法说明如何检查右弧是否被点击。 现在,你刚刚在制图小组的任何地方点击,这改变了该特定弧的颜色。