2012-04-09 140 views
-1

在我的程序中选择了与饼图菜单相关的饼图菜单相关形状的选项。我想要什么是当用户选择该选项,然后单击屏幕上相关形状的任何地方将在屏幕上绘制。谁能告诉我,我怎么能做到这一点?

鼠标点击事件代码JAVA鼠标事件

public void mouseClicked(MouseEvent e) 
{ 
    double base=x1-s; 
    double prep=as-y1; 
    double angle=Math.atan2(prep, base); 
    angle=((angle*180)/Math.PI); 

    if(angle==0) 
    { 

    } 
    else if(angle>0&&angle<45) 
    { 

     p.mc1=e.getX()+100; 
     p.mc2=e.getY()-25; 
     p.repaint();   

    } 

转盘菜单
Pie Menu Drawing

+0

我不在你的文章中看到问题,你有什么麻烦? – 2012-04-09 15:53:12

+0

@HunterMcMillen现在,例如,选择圆圈选项后,圆圈将绘制饼图菜单。我想要的是,当用户选择圆圈选项,然后点击屏幕圆圈中的任何位置,都应该在那里绘制。 – james 2012-04-09 15:59:01

+0

*“屏幕中的任何位置”*您的意思是在应用程序之外,还是仅在组件的“绘图区域”? – 2012-04-09 17:11:04

回答

2

不知道如何做一个形状完全相同,但一个矩形会有所帮助。计算饼图每个部分的坐标并将其近似为矩形。例如,如果饼图中的出口部分来自(20,80),则从(20,80)中创建一个矩形,并将宽度和高度创建为20个像素。创建9个矩形对象,如

矩形r1 =新的矩形(int startX,int startY,int width,int height);

而且使用的MouseListener,您可以轻松地检查其矩形由一个开关的情况下使用

public void mousePressed(MouseEvent me){ 
    if(r1.contains(me.getPoint){ 
     selected=1; 
    } 

使用选择的价值选择和实施任何ü要方法。