Java中 Graphics绘制出来的组件如何添加点击事件
1个回答
展开全部
一个例子:
第一步自己的panel内部 Ellipse
class MyDrawPanel extends JComponent implements MouseListener {
Ellipse2D oval = new Ellipse2D.Double(70, 70, 100, 100);
....
}
第二步 在paintComponent 使用fill(Shape) 绘图
public void paintComponent(Graphics g) {
....
Graphics2D g2d = (Graphics2D) g;
....
g2d.fill(oval);
}
第三步 鼠标事件
public void mouseClicked(MouseEvent e) {
if ((e.getButton() == 1) && oval.contains(e.getX(), e.getY()) ) {
repaint();
// JOptionPane.showMessageDialog(null,e.getX()+ "\n" + e.getY());
}
}
更多追问追答
追问
有办法能给每一个组件一个标识号么,点击的时候得到这个标志号
追答
刚才的自己的panel写一个构造方法里需要一个 id 属性,你每次new的时候给它一个id。你只要点击时候输出它就可以了
大概这样
void mypanel(int id){
this.id = id;
}
public void mouseCliked(event){
if(clicked)
showMessage("id is: " + id);
}
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询