我们正在尝试制作迷你高尔夫球比赛。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