Hi,
ich hoffe ihr könnt mir helfen, da ich einfach nicht weiter komme, auch wenn ich hier schon ein Thema dazu gelesen habe.
Ich habe im Laufe eines Praktikums eine Hase-Fuchs-Simulation etwas ausbauen müssen, ist wohl ein bekanntes, beliebtes Beispiel von Barnes und Kolling. Aber egal. Das Praktikum selbst lief gut, jetzt wollte ich dem Teil noch etwas Feinschliff verpassen. Habe ein GUI zusammengezimmert wo halt über JButtons eine neue Simulation gestartet werden soll und ich über die anderen Knöpfe halt die Simulationsdauer bestimme.
Fehler: non-static method simuliere(int) cannot be referenced from static context
Die gekürzteOberflächen-Klasse
Ausgeführt werden soll die Schrittsimulation
Der Fehler taucht auf bei
, das static der main hat keinen Einfluss. Wahrscheinlich ist der Fehler total banal, aber es nervt. ^^ Ich hoffe ihr könnt mir helfen und es gibt eine einfache Lösung.
ich hoffe ihr könnt mir helfen, da ich einfach nicht weiter komme, auch wenn ich hier schon ein Thema dazu gelesen habe.
Ich habe im Laufe eines Praktikums eine Hase-Fuchs-Simulation etwas ausbauen müssen, ist wohl ein bekanntes, beliebtes Beispiel von Barnes und Kolling. Aber egal. Das Praktikum selbst lief gut, jetzt wollte ich dem Teil noch etwas Feinschliff verpassen. Habe ein GUI zusammengezimmert wo halt über JButtons eine neue Simulation gestartet werden soll und ich über die anderen Knöpfe halt die Simulationsdauer bestimme.
Fehler: non-static method simuliere(int) cannot be referenced from static context
Die gekürzteOberflächen-Klasse
Java:
public static void main(String[] args){
Oberfläche g = new Oberfläche();
}
//Listener ausführen
private void addButtonListener(JButton b){
b.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent ae){
eingabe(ae.getActionCommand());
}
});
}
//Was machen die Buttons
private void eingabe(String a){
if(a=="Lange Simulation (500)"){
Simulator.simuliere(500);
}
else if(a=="Einzelschritt"){
Simulator.simuliere(1);
}
else if(a=="Neue Simulation starten"){
Simulator ttt = new Simulator(100,100);
}
else if(a=="Beenden"){
System.exit(0);
}
}
Ausgeführt werden soll die Schrittsimulation
Java:
public void starteLangeSimulation()
{
simuliere(500);
}
public void simuliere(int schritte)
{
for(int schritt = 1; schritt <= schritte && ansicht.istAktiv(feld); schritt++) {
simuliereEinenSchritt();
}
}
public void simuliereEinenSchritt()
{
schritt++;
neueTiere.clear();
for(Iterator iter = akteur.iterator(); iter.hasNext(); )
{
Akteur akteur = (Akteur)iter.next();
akteur.agiere(feld, naechstesFeld, neueTiere);
}
// alle Tiere agieren lassen
for(Iterator iter = tiere.iterator(); iter.hasNext(); ) {
Tier tier = (Tier)iter.next();
if(tier.istLebendig()) {
tier.agiere(feld, naechstesFeld, neueTiere);
}
else {
iter.remove(); // totes Tier entfernen
}
}
// neu geborene Akteur in die Liste der Akteur einfügen.
akteur.addAll(neueTiere);
// feld und nächstesFeld am Ende des Schritts austauschen.
Feld temp = feld;
feld = naechstesFeld;
naechstesFeld = temp;
naechstesFeld.raeumen();
// das neue Feld in der Ansicht anzeigen.
ansicht.zeigeStatus(schritt, feld);
}
Der Fehler taucht auf bei
Code:
Simulator.simuliere(x)
Zuletzt bearbeitet: