关于编译出现错误的问题!!!

woaichibaozi0 2015-08-05 11:45:53
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import java.awt.geom.*;
import java.util.*;


public class Bounce {
public static void main(String[] args){
EventQueue.invokeLater(new Runnable(){
public void run(){
JFrame frame=new BounceFrame();
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setVisible(true);

}
});
}

}

class BounceFrame extends JFrame{
private BallComponent comp;
public static final int STEPS=1000;
public static final int DELAY=3;



public BounceFrame(){
setTitle("Bounse");


comp=new BallComponent();
add(comp,BorderLayout.CENTER);
JPanel buttonPanel=new JPanel();
addButton(buttonPanel,"start",new ActionListener(){
public void actionPerformed(ActionEvent event){
addBall();
}
});
addButton(buttonPanel,"close",new ActionListener(){
public void actionPerformed(ActionEvent event){
System.exit(0);
}
});
add(buttonPanel,BorderLayout.SOUTH);
pack();
}



public void addButton(Container c, String title, ActionListener listener){
JButton button=new JButton(title);
c.add(button);
button.addActionListener(listener);
}

public void addBall(){
try{
Ball ball=new Ball();
comp.add(ball);


for(int i=1;i<=STEPS;i++){
ball.move(comp.getBounce());
comp.paint(comp.getGraphics());
Thread.sleep(DELAY);
}

}
catch(InterruptedException e){
}
}
}

public class Ball{
private static final int XSIZE=15;
private static final int YSIZE=15;
private double x=0;
private double y=0;
private dx=+1;
private dy=+1;


public void move(Rectangle2D bounds){
x+=dx;
y+=dy;
if(x<bounds.getMinX()){
x=bounds.getMinX();
dx=-dx;
}
if(x+XSIZE>=bounds.getMaxX()){
x=bounds.getMaxX()-XSIZE;
dx=-dx;
}
if(y<bounds.getMinY()){
y=bounds.getMinY();
dy=-dy;
}
if(y+YSIZE>=bounds.getMaxY()){
y=bounds.getMaxY()-YSIZE;
dy=-dy;
}
}
public Ellipse2D getShape(){
return new Ellipse2D.Double(x, y, XSIZE, YSIZE);
}
}

public class BallComponent extends JPanel{
private static final int DEFAULT_WIDTH=450;
private static final int DEFAULT_HEIGHT=350;

private java.util.List<Ball> balls=new ArrayList<>();

public void add(Ball b){
balls.add(b);
}

public void paintComponent(Graphics g){
super.paintComponent(g);
Graphics2D g2=(Graphics2D) g;
for(Ball b:balls){
g2.fill(b.getShape());
}
}

public Dimension getPreferredSize(){
return new Dimension(DEFAULT_WIDTH,DEFAULT_HEIGHT);
}
}

编译显示:

求解这个问题怎么解决。我是新手,忘大神指点一二。
...全文
113 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
skgary 2015-08-06
  • 打赏
  • 举报
回复
引用 5 楼 woaichibaozi0 的回复:
[quote=引用 1 楼 skgary 的回复:] 难道不是
 
private int dx=0;
private int dy=0;
么? 你在类变量的定义用dx=+1,意义是什么呢?
我是看到那两个错误之后加上了两个+号,源代码写的是dx=1,dy=1,但是最后编译就会产生这两个错误。求解决。。[/quote]
 
private int dx=1;
private int dy=1;
woaichibaozi0 2015-08-06
  • 打赏
  • 举报
回复
引用 3 楼 u012915397 的回复:
2 楼正解!
试过了之后还是没用。
woaichibaozi0 2015-08-06
  • 打赏
  • 举报
回复
引用 1 楼 skgary 的回复:
难道不是
 
private int dx=0;
private int dy=0;
么? 你在类变量的定义用dx=+1,意义是什么呢?
我是看到那两个错误之后加上了两个+号,源代码写的是dx=1,dy=1,但是最后编译就会产生这两个错误。求解决。。
woaichibaozi0 2015-08-06
  • 打赏
  • 举报
回复
引用 2 楼 wufeng55 的回复:
private dx=+1; private dy=+1 这两句代码应该写成这样: private dx+=1; private dy+=1 编译的时候编译主方法所在类的类名Bounce。
然而改正了之后结果依然是那那两个错误。
驾着蜗牛奔跑 2015-08-06
  • 打赏
  • 举报
回复
2 楼正解!
code小生 2015-08-06
  • 打赏
  • 举报
回复
private dx=+1; private dy=+1 这两句代码应该写成这样: private dx+=1; private dy+=1 编译的时候编译主方法所在类的类名Bounce。
skgary 2015-08-06
  • 打赏
  • 举报
回复
难道不是
 
private int dx=0;
private int dy=0;
么? 你在类变量的定义用dx=+1,意义是什么呢?
woaichibaozi0 2015-08-06
  • 打赏
  • 举报
回复
引用 7 楼 skgary 的回复:
[quote=引用 5 楼 woaichibaozi0 的回复:] [quote=引用 1 楼 skgary 的回复:] 难道不是
 
private int dx=0;
private int dy=0;
么? 你在类变量的定义用dx=+1,意义是什么呢?
我是看到那两个错误之后加上了两个+号,源代码写的是dx=1,dy=1,但是最后编译就会产生这两个错误。求解决。。[/quote]
 
private int dx=1;
private int dy=1;
[/quote]不好意思,是我疏忽大意了。

62,615

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧