2011-01-22 50 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(); 
      } 
     }); 
    } 
}