對不起,如果它似乎我垃圾郵件這個論壇,但我很接近完成這個小程序。我創建了一個簡單的球類,它包含球的x,y,半徑和速度。此時運行小程序返回錯誤,但它們都是一樣的,「無法找到符號」。對此主題的搜索已將其縮小到未聲明變量或構造函數存在問題的問題。我已經搜索了一個小時的解決方案,但我不知道在哪裏尋找。任何解決方案(我用Java編輯器)我得到42「無法找到符號」的錯誤,我找不到解決方案
import java.applet.*;
import java.awt.*;
import javax.swing.*;
import javax.swing.event.*;
public class BallApplet2 extends Applet implements Runnable
{
public static void main(String[] args) {
Ball rodebal = new Ball();
Ball blauwebal = new Ball();
rodebal.x_pos = 150;
rodebal.y_pos = 301;
rodebal.radius = 20;
rodebal.randomspeed = (int)(Math.random() * 7 + 2);
rodebal.ballspeedx = -randomspeed();
blauwebal.x_pos = 250;
blauwebal.y_pos = 301;
blauwebal.radius = 20;
blauwebal.randomspeed = (int)(Math.random() * 7 + 2);
blauwebal.ballspeedx = randomspeed();
}
public void init() {}
// de Thread wordt hier aangemaakt
public void start() {
Thread th = new Thread (this);
th.start(); }
public void stop() {}
public void destroy() {}
// de Thread wordt hier uitgevoerd door de methode run()
public void run() {
// de prioriteit van de Thread wordt verlaagd zodat hij niet nog een keer geactiveerd wordt tijdens het uitvoeren
Thread.currentThread().setPriority(Thread.MIN_PRIORITY);
while (true)
{
rodebal.x_pos += rodebal.ballspeedx;
blauwebal.x_pos += blauwebal.ballspeedx;
// repaint() update de positie van de ballen
repaint();
// als x_pos < 100 is draait de richting van de bal om
if (rodebal.x_pos < 100) {
rodebal.ballspeedx = -rodebal.ballspeedx;
x_pos1 = 100;
}
if (blauwebal.x_pos < 100) {
blauwebal.ballspeedx = -blauwebal.ballspeedx;
x_pos2 = 100;
}
// als x_pos > 300 is draait de richting van de bal om
if (rodebal.x_pos > 300) {
rodebal.ballspeedx1 = -rodebal.ballspeedx;
x_pos1 = 300;
}
if (blauwebal.x_pos > 300) {
blauwebal.ballspeedx = -blauwebal.ballspeedx;
x_pos2 = 300;
}
// als de positie van de blauwe bal (x_pos2) - de positie van de rode bal (x_pos1) kleiner is
// dan de som van de stralen van de rode en de blauwe bal draaien beide ballen om.
if (Math.abs(blauwebal.x_pos-rodebal.x_pos)<rodebal.radius+blauwebal.radius){
rodebal.ballspeedx = -rodebal.ballspeedx;
blauwebal.ballspeedx = -blauwebal.ballspeedx;
}
try { Thread.sleep (20); }
catch (InterruptedException ex) {}
Thread.currentThread().setPriority(Thread.MAX_PRIORITY); }}
public void paint (Graphics g) {
// de rode bal
g.setColor (Color.red);
g.fillOval (rodebal.x_pos - rodebal.radius, rodebal.y_pos - rodebal.radius, 2 * rodebal.radius, 2 * rodebal.radius);
// de blauwe bal
g.setColor (Color.blue);
g.fillOval (blauwe.x_pos - blauwe.radius2, blauwebal.y_pos - blauwe.radius, 2 * blauwe.radius, 2 * blauwe.radius);
g.setColor(Color.black);
g.drawLine(80,280,80,320); // lijn links
g.drawLine(320,280,320,320); // lijn rechts
g.drawLine(80,320,320,320); // lijn onder
}
// Einde eventmethoden
}
public class Ball {
int x_pos;
int y_pos;
int radius;
int randomspeed;
float ballspeedx;
}
哪條線給出錯誤? – ssantos
我們將需要Ball的代碼... – arcy
兩種可能性都在門外......你不會導入'Ball'(根據軟件包等你可能不需要做),而你試圖使用一種名爲'randomspeed'的方法,該方法尚未被聲明。 –