2012-04-09 136 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; 
    } 

使用選擇的價值選擇和實施任何ü要方法。