2011-01-22 103 views
0

所以,我所擁有的是一個繪製相位軌跡的程序。目前的出發點都是隨機的,但我想要添加的是程序從點擊點開始軌跡的一種方式。我一直在擺弄它幾個小時,想我什麼都知道,那麼這裏是代碼:圖形點擊界面

public static void click(final double r, final double t) { 
    MouseListener mus = new MouseAdapter() { 
     public void mouseClicked(MouseEvent e) { 
      double r = e.getX(); 
      double t = e.getY(); 
     } 
    }; 
} 

public Vector<Graph> getGraphs() { 
    // ... bunch of code that draws the graph... 
    g.add(new Graph.Line()); 
    g.lastElement().add(r, t); 
    g.lastElement().setColor(Color.blue); 

什麼它告訴我的是,R和T無法找到。我意識到,如果沒有整個代碼,可能很難提供幫助,但是如果你真的願意幫忙的話,我可以把它發送給別人。但在其他情況下,任何人都知道我能做什麼?

回答

1

1)rt不在範圍內爲您getGraphs()方法。

2)你似乎並沒有登記您的鼠標適配器作爲MouseListener任何地方

3)目前尚不清楚如何click()方法被調用


你需要捕獲鼠標點擊一個窗口組件,假設它是您正在使用的JPanel。

然後您的代碼會是這個樣子:

public class MyApplication { 
    private JFrame myWindow = new JFrame("My Application"); 
    private JPanel myPanelYouCanClick = new JPanel(); 

    public MyApplication() { 
     myWindow.setContantPane(myPanelYouCanClick); 
     myPanelYouCanClick.addMouseListener(new MouseAdapter() { 
      public void mouseClicked(MouseEvent e) { 
       double r = e.getX(); 
       double t = e.getY(); 
       // Code to create your new trajectory called from here, pass 
       // in the values of r and t if required. Remember you are 
       // running on the event dispatcher thread! 
      } 
     }); 
     myWindow.setVisible(true); 
    } 

    public static void main(String[] args) { 
     SwingUtilities.invokeLater(new Runnable() { 
      public void run() { 
       MyApplication app = new MyApplication(); 
      } 
     }); 
    } 
}