我有一个快速的问题给你们,好吧,快给你吧,对我来说不快。比较一个Arc2D和一个组件
我有一个充满的Arc2D形状的数组,我有一个MouseAdapter
内的mousePressed事件,我需要在点击的Arc2D用的Arc2D的,甚至更好的阵列相比,全自动识别的Arc2D是点击,然后可以从那里工作的(改变颜色,更specificly)
我想这
private class MyMouseAdapter extends MouseAdapter {
public void mousePressed(MouseEvent e) {
Point p = e.getPoint();
Component c = gamePanel.getComponentAt(p);
if(c == arcs[0]) {
System.out.println("test");
}
}
}
当然,这并不工作,但我真的不知道该怎么办
非常感谢!
编辑:
看第一个回答我就到这里后,我试图更改代码以这种
private class MyMouseAdapter extends MouseAdapter {
public void mousePressed(MouseEvent e) {
Point p = e.getPoint();
if(arcs[0].contains(p)) {
System.out.println("test");
}
}
}
当然这是行不通的,因为
圆弧阵列只包含即在这种方法后来描绘的圆弧
@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);
}
我完全被卡住家伙
*“我对你们..一个简单的问题” *不幸的是我对你唯一的答案并不快,所以..never头脑。 –