2013-04-17 30 views
0

我知道我做錯了什麼,但我無法找到究竟是什麼(長時間的編碼)。粒子模擬器Java

我需要實現粒子模擬器。 我有一些類,我需要使它能夠創建右點擊幾個發射器。

一些代碼:

public final class Viewport extends JComponent implements ActionListener { 

    private AffineTransform transform = new AffineTransform(); 
    private ArrayList particleList = new ArrayList(); 
    ParticleEmitter emitter1; 
    private Timer timer; 
    double x; 
    double y; 

    public Viewport() { 
    particalEmitterImport(); 
    } 


    public void particalEmitterImport() { 

    initComponents(); 
    timer = new Timer(30, this); 
    emitter1 = new ParticleEmitter(3); 
    timer.start(); 
    timer.setInitialDelay(0); 
    //repaint(); 
    x = 0; 
    y = 0; 
    transform.setToIdentity(); 
    } 

    public void particalEmitterImport(int mouseX, int mouseY) { 

    initComponents(); 
    timer = new Timer(30, this); 
    emitter1 = new ParticleEmitter(3); 
    timer.start(); 
    timer.setInitialDelay(0); 

    x = mouseX; 
    y = mouseY; 
    transform.setToIdentity(); 
    } 

主類:

private void viewportMouseClicked(java.awt.event.MouseEvent evt) {          
    Viewport vw = new Viewport(); 
    if (SwingUtilities.isRightMouseButton(evt)) { 
     xMouse = evt.getX(); 
     yMouse = evt.getY(); 
     vw.particalEmitterImport(xMouse, xMouse); 
     vw.setLocation(xMouse,yMouse); 
     System.out.println("CLICK"); 
     System.out.println(xMouse); 
     System.out.println(yMouse); 
     vw.setVisible(true); 
    } 

問題是我看不到我的發射器,但在輸出我看到,我從事件得到所有值。

+0

你爲什麼要創建一個新的視窗('視口VW =新視窗();'),而不是修改被點擊的一個?我不希望'setVisible'做任何事情,因爲'vw'永遠不會成爲一個框架的後代。 –

+0

爲了儘快提供更好的幫助,請發佈[SSCCE](http://sscce.org/)。 –

回答

5
w.particalEmitterImport(xMouse, xMouse); 
           ^^^^^^ 

我想你彪:

w.particalEmitterImport(xMouse, yMouse); 
           ^^^^^^