2011-01-22 8 views
0

私は位相軌道をプロットするプログラムを持っています。現時点では、開始点はすべてランダムですが、私が追加しようとしているのは、プログラムがクリックするポイントから軌道を開始する方法です。グラフClick Interface

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)rおよびtは、お客様のgetGraphs()メソッドの対象外です。

2)あなたはあなたがマウスをキャプチャする必要がclick()方法が


呼び出されるかは明らかではない)MouseListenerどこでも

3としてあなたのマウスアダプタを登録しているようには見えません。あなたが使用している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(); 
      } 
     }); 
    } 
}