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);
}
問題是我看不到我的發射器,但在輸出我看到,我從事件得到所有值。
你爲什麼要創建一個新的視窗('視口VW =新視窗();'),而不是修改被點擊的一個?我不希望'setVisible'做任何事情,因爲'vw'永遠不會成爲一個框架的後代。 –
爲了儘快提供更好的幫助,請發佈[SSCCE](http://sscce.org/)。 –