Java 两个简单的弹跳球

Java 两个简单的弹跳球,java,Java,我是Java新手,现在我正在做一个图形,我正在做一个简单的弹跳球。起初我创建了一个弹跳球,它工作了,然后我又添加了一个球,但出现了一个错误。“错误:找不到符号”出现在第33、43、55和59行。你能帮我吗?似乎我已经调用了所有需要的变量 import javax.swing.*; import java.awt.*; import java.awt.*; import java.util.*; import java.awt.event.*; import javax.swing.Timer;

我是Java新手,现在我正在做一个图形,我正在做一个简单的弹跳球。起初我创建了一个弹跳球,它工作了,然后我又添加了一个球,但出现了一个错误。“错误:找不到符号”出现在第33、43、55和59行。你能帮我吗?似乎我已经调用了所有需要的变量

import javax.swing.*;
import java.awt.*;
import java.awt.*;
import java.util.*;
import java.awt.event.*;
import javax.swing.Timer;
public class BouncingBall extends JPanel
{
//1st ball
int x1 = 250, y1 = 100;
int width1 = 50, height1 = 50;
int xpos1 = 0, ypos1 = 0;
//2nd ball
int x2 = 20, y2 = 20;
int width2 = 100, height2 = 100;
int xpos2 = 0, ypos2 = 0;
java.util.Timer timer;
static JFrame frame;
public BouncingBall()
{
frame = new JFrame("Bouncing Ball");
frame.setSize(400,400);
frame.setVisible(true);
setForeground(Color.red);
timer = new java.util.Timer();
timer.scheduleAtFixedRate(new TimerTask()
{
public void run()
{
{
if(x1 < 0)
xpos1 = 1;
if(x1 >= getWidth1() - 45)
xpos1 = -1;
if(y1 < 0)
ypos1 = 1;
if(y1 >= getHeight1() - 45)
ypos1 = - 1;
x1 += xpos1;
y1 += ypos1;
repaint();
}
{
if(x2 < 0)
xpos2 = 1;
if(x2 >= getWidth2() - 45)
xpos2 = -1;
if(y2 < 0)
ypos2 = 1;
if(y2 >= getHeight2() - 45)
ypos2 = - 1;
x2 += xpos2;
y2 += ypos2;
repaint();
}
}
}, 0, 5);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
public void paint(Graphics g)
{
super.paint(g);
Graphics2D g2D = (Graphics2D) g;
g2D.setRenderingHint(RenderingHints.KEY_ANTIALIASING,  
RenderingHints.VALUE_ANTIALIAS_ON);
g2D.fillOval(x1,y1,width1,height1);
g2D.fillOval(x2,y2,width2,height2);
}
public static void main(String args[])
{
BouncingBall ball = new BouncingBall();
frame.add(ball);
}
}
import javax.swing.*;
导入java.awt.*;
导入java.awt.*;
导入java.util.*;
导入java.awt.event.*;
导入javax.swing.Timer;
公共类弹跳球扩展JPanel
{
//第一球
int x1=250,y1=100;
内部宽度1=50,高度1=50;
int xpos1=0,ypos1=0;
//第二球
int x2=20,y2=20;
整数宽度2=100,高度2=100;
int xpos2=0,ypos2=0;
java.util.Timer;
静态JFrame;
公众弹跳球
{
框架=新的JFrame(“弹跳球”);
框架。设置尺寸(400400);
frame.setVisible(true);
设置前景(颜色为红色);
timer=newjava.util.timer();
timer.scheduleAtFixedRate(新TimerTask()
{
公开募捐
{
{
if(x1<0)
xpos1=1;
如果(x1>=getWidth1()-45)
xpos1=-1;
if(y1<0)
ypos1=1;
如果(y1>=getHeight1()-45)
ypos1=-1;
x1+=xpos1;
y1+=ypos1;
重新油漆();
}
{
if(x2<0)
xpos2=1;
如果(x2>=getWidth2()-45)
xpos2=-1;
if(y2<0)
ypos2=1;
如果(y2>=getHeight2()-45)
ypos2=-1;
x2+=xpos2;
y2+=ypos2;
重新油漆();
}
}
}, 0, 5);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
公共空间涂料(图g)
{
超级油漆(g);
Graphics2D g2D=(Graphics2D)g;
g2D.setRenderingHint(RenderingHints.KEY_抗锯齿,
RenderingHints.VALUE_ANTIALIAS_ON);
g2D.椭圆形(x1,y1,宽度1,高度1);
g2D.椭圆形(x2,y2,宽度2,高度2);
}
公共静态void main(字符串参数[])
{
BouncingBall=新的BouncingBall();
帧。添加(球);
}
}

以下是有问题的4行:

if(x1 >= getWidth1() - 45)
if(y1 >= getHeight1() - 45)
if(x2 >= getWidth2() - 45)
if(y2 >= getHeight2() - 45)
这些方法都没有实现


您可能需要的是
frame.getWidth()
frame.getHeight()

您可以发布一个带有#行的版本吗?你会得到更多的回应。或者,粘贴回拨失败的行。不要使用
java.util.Timer
,使用
javax.swing.Timer
,它会在事件调度线程的上下文中执行回拨,使从内部修改UI的状态更安全。考虑使用<代码> PruttCys<代码> > <代码> Prase<代码>,因为它将防止将来可能出现的问题。请参阅,有关更多详细信息,您指的是实现了什么?因为当我做一个球时,它是成功的,所以我添加了另一个球,我只是为那个球添加了变量,然后发生了一个错误。你没有编写这些方法。