Threads + Programm:TheGreatThreadRace (Fehler)

Status
Nicht offen für weitere Antworten.
F

Flip.Side.Mod

Gast
Hallo Leute,

ich komme zu euch als fast kompletter Anfänger in Sachen Java, der für den Informatik-Unterricht in der Schule (13. Klasse) ein Referat vorbereiten soll.
Zu meinen Vorkenntnissen: ein knappes Jahr Java-Grundkenntnisse (solálá) :roll:
Das Thema sind Threads in Java und dazu wollte ich meiner Klasse zur Verdeutlichung der Arbeitsweise noch ein Programm präsentieren und bin auf "TheGreatThreadRace" gestoßen (Literatur: "Special Edition Using Java 2 Platform")

Das Programm im Allgemeinen findet ihr hier: http://www.lib.tsinghua.edu.cn/chinese/INTERNET/Java/jv25.htm
Es stellt, soweit ich das versteh, mehrere Threads als "Rennwagen" dar, die unabhängig voneinander um die Wette fahren...

Nun will ich des in Eclipse SDK eingeben, aber des meldet mir einfach zu viele Fehler, als das es laufen würde und ich hab keine Ahnung, woran es liegt :(
(Fehler immer als Kommentar dahinter)


Code:
package race2;

import goodFrame; //cannot be resolved

import java.awt.Graphics;

import java.awt.GridLayout;

import Threader; //cannot be resolved

Code:
//Create a new Thread for each racer, and add it to the panel

  for (int x=0;x<racerCount;x++){

    theRacers[x]=new Threader ("Racer #"+x);

    theRacers[x].resize(size().width,size().height/racerCount); 

//The method size() from the type Component is deprecated
//The method resize(int, int) from the type Component is 
//deprecated
//The method size() from the type Component is deprecated
 
    add (theRacers[x]);

    theThreads[x]=new Thread(theRacers[x]);
Code:
//Create a new frame and place the race in it.

  goodFrame theFrame = new goodFrame("The Great Thread Race"); //Multiple markers at this line

//goodFrame cannot be resolved to a type
//goodFrame cannot be resolved to a type

  GreatRace theRace = new GreatRace();

  theFrame.resize(400,200);

  theFrame.add ("Center",theRace);

  theFrame.show();

  theRace.init();

  theFrame.pack();

  theRace.start();

}


Was mache ich/ was ist an dem Programm falsch?
(war ja nur copy&paste von der inet-site ???:L )

Bitte simpel erklären, ich muss es ja dann auch verstehen und meine Klassenkameraden auch, wenn ich es ihnen verzähl...
 

function

Bekanntes Mitglied
import goodFrame;
import Threader;
sind keine standart javaklassen. die müßen zusätzlich implementiert werden sind bestimmt auhc iwo auf der inet seite zu finden.. müßen auch im gleichen package liegen... daraus resultieren die fehler
 
G

Guest

Gast
klar, hab ich auch eine Threader-class erstellt, hab sie nur nicht angegeben, da in ihr kein Fehler auftaucht.

nur über die Class goodFrame verlieren die dort kein Wort :?
 
F

Flip.Side.Mod

Gast
keiner ne Idee?

auch kein Problem.

hab hier nochmal des Orginale aus dem Buch, des sich von der Version im inet doch zu unterscheiden scheint:
(jedoch geht des damit auch nicht, ich markier die Fehler mal mit "//!!!..." )

Class GreatRace:
Code:
package race;

import java.awt.Graphics;
import java.awt.GridLayout;
import java.awt.Frame;
import Threader;                  //!!! The import Threader cannot be resolved

public class GreatRace extends java.applet.Applet implements Runnable{
Threader theRacers[];
static int racerCount = 3;
Thread    theThreads[];
Thread    thisThread;
static boolean inApplet=true;

int numberofThreadsAtStart;

public void init(){
//we will use this later to see if all our Threads have died.
numberofThreadsAtStart = Thread.activeCount();

//Specify the layout. We will be adding  all of the racers one on top
//of the other.

setLayout(new GridLayout(racerCount,1));

//Specify the number of racers in this race, and make the arrays for the
//Threaders and the actual threads the proper size.
theRacers = new Threader [racerCount];
theThreads = new Thread[racerCount];

//Create a new Thread for each racer, and add it to the panel.
for (int x=0<racerCount;x++){                                            //!!!Multiple markers at this line
	//- Type mismatch: cannot convert from 
	// boolean to int
	//- Type mismatch: cannot convert from int to 
	// boolean
	//- Syntax error on token "++", ; expected after 
	// this token
theRacers[x]=new Threader("Racer #"+x);
theRacers[x].setSize(getSize().width,getSize().height/racerCount);
add (theRacers[x]);
theThreads[x]=new Thread(theRacers[x]);

}
}




public void start(){
//Start all of the racing Threads
for (int x=0<racerCount;x++)                         //!!! Multiple markers at this line
	//- Type mismatch: cannot convert from 
	// boolean to int
	//- Type mismatch: cannot convert from int to 
	//boolean
	//- Syntax error on token "++", ; expected after 
	//this token
theThreads[x].start();

//Create a thread of our own. We will use this to monitor the state of
//the racers and determine when we should quit altogether.
thisThread= new Thread (this);
thisThread.start();
}




public void stop(){
for (int x= 0;x<theRacers.length;x++){
theRacers[x].stop();

}
}




public void run(){
//Loop around until all of the racers have finished the race.
while(Thread.activeCount()>numberofThreadsAtStart+2){
try{
thisThread.sleep(100);
} catch (InterruptedException e){
System.out.println("thisThread was interrupted");
}
}

//Once the race is done, end the program.
if (inApplet){
stop();
destroy();
}
else
System.exit(0);
}



public static void main (String argv[]){
inApplet=false;

//Check to see if the number of racers has been specified on the command
//line.
if (argv.length>0)
racerCount = Integer.parseInt(argv[0]);

//Create a new frame and place the race in it.
Frame theFrame = new Frame("The Great Thread Race");
GreatRace theRace = new GreatRace();
theFrame.setSize(400,200);
theFrame.add ("Center",theRace);
theFrame.show();
theRace.init();
theFrame.pack();
theRace.start();
}

} //end class GreatRace

Class Threader:
Code:
package race;

import java.awt.Graphics;
import java.awt.Color;

public class Threader extends java.awt.Canvas implements Runnable {
	int myPosition =0;
	String myName;
	int numberofSteps=600;
	boolean keepRunning = true;
	
	//Constructor for a Threader. We need to know our name when we
	//create the Threader.
	
public Threader (String inName){
	myName=new String (inName);
}

public synchronized void oaint(Graphics g){
	//Draw a line for the "racing line".
	g.setColor(Color.black);
	g.drawLine(0,getSize().height/2,getSize().width,getSize().height/2);
	//Draw the round racer.
	g.setColor(Color.yellow);
	g.fillOval(myPosition*getSize().width/numberofSteps,0,15,getSize().height);
}

public void stop(){
	keepRunning = false;
}

public void run(){
	//Loop until we have fnished the Race.
	while ((myPosition <numberofSteps)&& keepRunning){
		//Move ahead one position.
		myPosition++;
		repaint();
		
		//Put ourselves to sleep so the paint Thread can get around painting.
		try{
			Thread.currentThread().sleep(10);
		}catch (Exception e){System.out.println("Exception on sleep");}
	}
	System.out.println("Threader:"+myName+" has finished the race");
}

} //end class Threader.


Es reicht doch aus, dass ich die beiden Klassen in einem package erstell und dann die Class GreatRace auf die Class Threader zugreifen kann, oder?
 

Murray

Top Contributor
Sowas
Code:
import Threader;
geht nicht - Klassen aus dem Default-Packe kann man nicht importieren (deshalb sollte man das Default-Package auch nicht benutzen).
Zum Glück ist das hier auch nicht notwendig, denn Threader hat ja das Package race (und eben nicht das Default-Package), daher würde
Code:
import race.Threader;
gehen. Aber auch das ist hier nicht notwendig, da sich die verwendende Klasse ja ebenfalls im race-Package befindet - also kann die Zeile einfach weggelassen werden.
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
E Threads - Programm analysieren Java Basics - Anfänger-Themen 2
K Programm ohne Threads kurz Pausieren Java Basics - Anfänger-Themen 4
F aus mehreren Programmen ein Programm mit Threads machen Java Basics - Anfänger-Themen 7
H Nutzt Eclipse alle CPU-Threads beim Ausführen von Java-Programmen? Java Basics - Anfänger-Themen 4
C Threads und Swing Java Basics - Anfänger-Themen 9
berserkerdq2 Wo finde ich in der Java Api die Notation zu Threads bezüglich Synchronized? Java Basics - Anfänger-Themen 14
berserkerdq2 Findet eine parallele Verarbeitung in Java bei Threads erst statt, wenn man die Methoden auch synchronized? Und wie sieht bei Conditions aus? Java Basics - Anfänger-Themen 8
B Monitor als Schranke von Threads Java Basics - Anfänger-Themen 20
W Threads Alphabet Java Basics - Anfänger-Themen 20
H Threads Anfänger Java Basics - Anfänger-Themen 17
1 Threads parallel laufen Java Basics - Anfänger-Themen 11
B Threads Problem mit mehreren Threads Java Basics - Anfänger-Themen 38
M Threads Java Basics - Anfänger-Themen 12
L Threads Synchronisierung zwischen threads Java Basics - Anfänger-Themen 4
M Threads Java Basics - Anfänger-Themen 2
A Threads Java Basics - Anfänger-Themen 9
A Threads Java Basics - Anfänger-Themen 13
A Threads und .join Java Basics - Anfänger-Themen 14
W Threads starten Java Basics - Anfänger-Themen 2
X Threads Zwei Threads, aber doppelte Ausgabe verhindern (synchronized) Java Basics - Anfänger-Themen 54
J Wieviele threads? Java Basics - Anfänger-Themen 9
J Problem bei seriellem Start von Threads Java Basics - Anfänger-Themen 11
O Threads Java Basics - Anfänger-Themen 2
L Buchungssystem und Threads Java Basics - Anfänger-Themen 2
O Threads - Synchronize(), join(), wait(), notify(), yield() Java Basics - Anfänger-Themen 6
L Klassen NFC Reader und JavaFx Problem -> threads? Java Basics - Anfänger-Themen 2
A Kommunikation zwischen nebenläufigen Threads Java Basics - Anfänger-Themen 4
S Gemeinsame Ressource und Mehrfachinstanziierung von Threads Java Basics - Anfänger-Themen 16
S Verklemmung Threads Java Basics - Anfänger-Themen 11
B Threads 2 Threads gleichzeitig laufen lassen Java Basics - Anfänger-Themen 1
M Threads Threads laufen sequenziell, statt gleichzeitig. Java Basics - Anfänger-Themen 9
M Threads run Methode Java Basics - Anfänger-Themen 4
javajoshi mehrere Threads: Methoden zentral unterbringen Java Basics - Anfänger-Themen 8
javajoshi Problem mit zwei Threads und Arrays (Runnable) Java Basics - Anfänger-Themen 12
L Threads Mit Threads JLabel ändern! Java Basics - Anfänger-Themen 2
K Matrixen berechnen nach Worker Master Paradigma mit Threads Java Basics - Anfänger-Themen 4
S Kleine Frage zu Threads Java Basics - Anfänger-Themen 3
M Mit 2 Threads eine Zahl hochzählen Java Basics - Anfänger-Themen 13
T Threads Synchronisieren Java Basics - Anfänger-Themen 6
D Frage Threads Java Basics - Anfänger-Themen 6
Z Threads Executor Framework - Aufgabe auf n Threads aufteilen Java Basics - Anfänger-Themen 10
Z Threads Threads - Zugriff auf Ressourcen ohne(Lock, Synchronized) Java Basics - Anfänger-Themen 2
kilopack15 Verständnisfrage zur Verwendung von notify() bei Threads Java Basics - Anfänger-Themen 2
kilopack15 Mehrere Threads in einer Klasse Java Basics - Anfänger-Themen 8
H Threads funktionieren nicht Java Basics - Anfänger-Themen 4
J Aufgabe(Threads) richtig verstanden/implementiert Java Basics - Anfänger-Themen 27
R Threads aufeinander warten lassen? Java Basics - Anfänger-Themen 10
T Threads Durch threads gestartete Prozesse killen Java Basics - Anfänger-Themen 2
J Threads Java Basics - Anfänger-Themen 38
D Alte Klausuraufgabe Threads Java Basics - Anfänger-Themen 10
A Threads Threads bestimmte Aufgaben zuweisen... Java Basics - Anfänger-Themen 3
R Threads in JavaFX Java Basics - Anfänger-Themen 3
E Threads Doppelte Threads beenden Java Basics - Anfänger-Themen 4
F Sicheres Zurückmelden aus Threads Java Basics - Anfänger-Themen 0
G Threads zum Thema Threads??? null Ahnung Java Basics - Anfänger-Themen 4
Q Threads Threads in Swing Anwendungen Java Basics - Anfänger-Themen 5
J ConcurrentCalculation Multi Threads in Java Java Basics - Anfänger-Themen 3
P Threads Trotz Threads wird nur 1 Prozessorkern ausgelastet Java Basics - Anfänger-Themen 7
M "restartable" threads Java Basics - Anfänger-Themen 11
M Threads - summieren Java Basics - Anfänger-Themen 13
W Klassen Variable einer anderen Klasse ändern (Threads) Java Basics - Anfänger-Themen 3
E join() bei zwei Threads Java Basics - Anfänger-Themen 2
T Threads Threads richtig synchronisieren Java Basics - Anfänger-Themen 3
D [Concurrency/Threads] Code Umsetzung Schriftlich Java Basics - Anfänger-Themen 2
D Threads Java Basics - Anfänger-Themen 4
M Threads nio Dateien kopieren, Threads und Gui Java Basics - Anfänger-Themen 0
N Verweise auf Variablen in verschiedenen Threads Java Basics - Anfänger-Themen 4
T Java-Threads Java Basics - Anfänger-Themen 0
G Moving Objects with Threads (implements Runnable) Java Basics - Anfänger-Themen 1
F Threads funktionieren auf JPanel nicht Java Basics - Anfänger-Themen 1
M Problem mit Threads Java Basics - Anfänger-Themen 11
M Threads - wo gehören sie hin? Java Basics - Anfänger-Themen 3
S 2D-Spiel mit Threads... Java Basics - Anfänger-Themen 3
J Threads Java Basics - Anfänger-Themen 3
F ExecutorService und offene Threads Java Basics - Anfänger-Themen 3
P Threads Threads nicht nebenläufig Java Basics - Anfänger-Themen 7
M Threads nicht nebenleblaufig Java Basics - Anfänger-Themen 2
B Threads parallel zur main Java Basics - Anfänger-Themen 3
M Threads Java Basics - Anfänger-Themen 2
M Threads, zwei methoden gleichzeitig laufen lassen Java Basics - Anfänger-Themen 4
M Threads und Methodenübergreifender Variablezugriff Java Basics - Anfänger-Themen 2
J Wie handle ich Threads am besten? Java Basics - Anfänger-Themen 2
H Threads Java Basics - Anfänger-Themen 10
B synchronized threads Java Basics - Anfänger-Themen 17
E Mehrmaliges Ausführen eines Threads Java Basics - Anfänger-Themen 5
E Threads Verständnisfrage bzgl. Threads und Sleep Java Basics - Anfänger-Themen 2
T Alle Threads .notify() Java Basics - Anfänger-Themen 13
R Threads Verständnisschwierigkeit Java Basics - Anfänger-Themen 2
J Können mehere Threads parallel eine Datei lesen? Java Basics - Anfänger-Themen 4
G Methoden in Threads wandeln Java Basics - Anfänger-Themen 7
H Threads Java Basics - Anfänger-Themen 17
F Java Concurrency - Threads Java Basics - Anfänger-Themen 4
V Threads Threads synchronisieren Java Basics - Anfänger-Themen 4
T Threads Join() = Block? oO Java Basics - Anfänger-Themen 4
J Threads ArrayList Problem bei Threads Java Basics - Anfänger-Themen 3
C Objekte durchschleifen / Threads Java Basics - Anfänger-Themen 2
J Threads stoppen mit interrupt - Frage dazu Java Basics - Anfänger-Themen 7
N Pingen in Threads Java Basics - Anfänger-Themen 9
B Threads benutzen Java Basics - Anfänger-Themen 5
E Allgemein Verständnissfrage zum Ablauf mehrerer Threads Java Basics - Anfänger-Themen 4

Ähnliche Java Themen

Neue Themen


Oben