我們正在嘗試製作迷你高爾夫球比賽。MouseEvent造成打擊
的問題是我們的方向和速度鏈接到線
所以今天的主要問題將是鼠標的點擊鏈接到一個位置,也給我們的圖像的運動的開始。 我們的想法是將運動放置在一個單獨的類中,並在mouseevent中調用該類,但不幸的是它不起作用(或者我們不知道如何使其工作)。 對於這個位置,我們發起了一個'x'和'y'變量,他們將被運動課程調整。
public Afb atoom;
//variabelen voor de bal
public Frame venster;
public JButton terug;
public JButton begin;
public Image jens;
public Image groen;
Timer t = new Timer(5,this);
int x=50, y=100, velX=2, velY=2;
public int x1;
public int y1;
//-------------------------------------------------------------------------------
//--------------------------------KNOPPEN IN U PANEEL----------------------------
public SpelPaneel(Frame venster)
{
this.venster = venster;
atoom = new Afb("atoom.jpg",0,0);
terug = new JButton("TERUG");
terug.addActionListener(this);
this.add(terug);
begin = new JButton("START");
begin.addActionListener(this);
this.add(begin);
}
public void mouseClicked(MouseEvent event)
{
x1 = event.getX();
y1 = event.getY();
}
//-------------------------------------------------------------------------------
//-------------------------------------------------------------------------------
//-----------------------------------SUPERELEKTRON-------------------------------
public void paintComponent(Graphics j)
{
//dit moet het balletje vervangen
super.paintComponent(j);
//groen = new ImageIcon(getClass().getResource("groen.jpg")).getImage();
//j.drawImage(groen,25,75,850,450,null);
jens = new ImageIcon(getClass().getResource("superatoompje.jpg")).getImage();
j.drawImage(jens,x,y,50,50,this);
j.drawLine(x,y,x1,y1);
j.drawRect(25,75,850,450);
}
//-------------------------------------------------------------------------------
public void actionPerformed(ActionEvent ae)
{
if (ae.getSource() == begin)
{
t.start();
}
else if(ae.getSource() == terug)
venster.switchPanel();
if (x<25 || x> 825)
{
velX = -velX;
}
if (y<75 || y>475)
{
velY = -velY;
}
x+=velX;
y+=velY;
repaint();
}
}
幀,應該是JFrame,建議不要混合AWT和Swing,以便更快地發佈[SSCCE](http://sscce.org/),更好的幫助,短的,可運行的,可編譯的 – mKorbel 2013-04-22 10:23:27