Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/392.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
粒子模拟器Java_Java_Swing - Fatal编程技术网

粒子模拟器Java

粒子模拟器Java,java,swing,Java,Swing,我知道我做错了什么,但我找不到确切的原因(漫长的编码日) 我需要实现粒子模拟器。 我有一些类,我需要使右键单击创建几个发射器成为可能 一些代码: public final class Viewport extends JComponent implements ActionListener { private AffineTransform transform = new AffineTransform(); private ArrayList particleList = new A

我知道我做错了什么,但我找不到确切的原因(漫长的编码日)

我需要实现粒子模拟器。 我有一些类,我需要使右键单击创建几个发射器成为可能

一些代码:

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);
    }
问题是我看不到我的发射器,但在输出中我看到了我从事件中获得的所有值

w.particalEmitterImport(xMouse, xMouse);
                                ^^^^^^
我想你应该:

w.particalEmitterImport(xMouse, yMouse);
                                ^^^^^^
我想你应该:

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

为什么要创建新视口(
viewport vw=new viewport();
),而不是修改单击的视口?我不希望
setVisible
做任何事情,因为
vw
永远不会成为帧的后代。为了更快获得更好的帮助,请发布一个。为什么要创建一个新视口(
viewport vw=new viewport();
),而不是修改单击的视口?我不希望
setVisible
做任何事情,因为
vw
永远不会成为帧的后代。要更快地获得更好的帮助,请发布一个。