Hallo ihr Lieben...
Ich bin dabei, eine art Baureihenfolge zu programmieren.
In einer Tabelle soll ein zu bauendes Raumschiff dargestellt werden. (Hauptsächlich der Name)
Daneben der Baubeginn und die Zeit der Fertigstellung.
Die Tabelle funktioniert soweit, nur haperts irgendwie trotzdem an einer praktikablen Umsetzung.
Wenn ich auf einen Button klicke wird die funktion
aufgerufen.
Der Planet Existiert ja schon, nur das Schiff nicht, soll ja auch vorerst noch gar nicht. (Oder doch?)
Im TableModel sieht die benannte Funktion so aus:
Wie gesagt, sind erst mal nur Strings.
Bei der Zeile "test" soll dann eigentlich das Datum der Fertigstellung hin - also die Zeit des Baubeginns PLUS die Zeit, die jeder Schiffstyp individuell benötigt.
Dazu habe ich eine Klasse "Ship" und eine Unterklasse namens "Speeder" angelegt.
Siehe hier:
Meine Frage ist nun:
Wie kann ich per Buttonklick sagen, dass ein nicht existierendes Speederobjekt an mein tableModel weitergegeben wird?
Später soll ja über ein Dropdown o.ä. solche Vorgänge realisiert werden.
Oder sollte ich das einfach über eine switch-schleife machen, und dann je nach Case irgendwie ein Platzhalterobjekt erzeugen? Wie macht man das in richtigen Spielen?
Oder gibts da irgendwelche (cast)-möglichkeiten um an die individuellen Bauzeiten zuzugreifen?
Grüße!
Ich bin dabei, eine art Baureihenfolge zu programmieren.
In einer Tabelle soll ein zu bauendes Raumschiff dargestellt werden. (Hauptsächlich der Name)
Daneben der Baubeginn und die Zeit der Fertigstellung.
Die Tabelle funktioniert soweit, nur haperts irgendwie trotzdem an einer praktikablen Umsetzung.
Wenn ich auf einen Button klicke wird die funktion
Java:
public void BuildShip(String ship, Planet p){
p.shipBuildListModel.addBuildOrder(ship);
}
Der Planet Existiert ja schon, nur das Schiff nicht, soll ja auch vorerst noch gar nicht. (Oder doch?)
Im TableModel sieht die benannte Funktion so aus:
Java:
public void addBuildOrder(String ship){
DateTime currentTime = new DateTime(); // JODA-Time
List<String> newOrder = new ArrayList<>();
newOrder.add(ship); // evtl. ship.getName() o.ä.
newOrder.add(currentTime.toString("dd.MM.yyyy_HH:mm:ss"));
newOrder.add("test"); //<-- Was ist zu tun?
rows.add(newOrder);
fireTableRowsInserted(rows.size()-1,rows.size()+1);
}
Wie gesagt, sind erst mal nur Strings.
Bei der Zeile "test" soll dann eigentlich das Datum der Fertigstellung hin - also die Zeit des Baubeginns PLUS die Zeit, die jeder Schiffstyp individuell benötigt.
Dazu habe ich eine Klasse "Ship" und eine Unterklasse namens "Speeder" angelegt.
Siehe hier:
Java:
public class Ship {
int minHP;
int minSP;
int maxHP;
int maxSP;
int prize; // SofortkaufKosten
int buildTime; // in Sekunden
float speed;
int[][] position;
String name;
public int getBuildTime(){ return buildTime; }
public String getName() { return name;}
}
Java:
public class Speeder extends Ship {
Speeder(){ // ID = Ort wo es gebaut wurde und wo es dann später eingetragen werden soll
this.buildTime = 1;
}
}
Meine Frage ist nun:
Wie kann ich per Buttonklick sagen, dass ein nicht existierendes Speederobjekt an mein tableModel weitergegeben wird?
Später soll ja über ein Dropdown o.ä. solche Vorgänge realisiert werden.
Oder sollte ich das einfach über eine switch-schleife machen, und dann je nach Case irgendwie ein Platzhalterobjekt erzeugen? Wie macht man das in richtigen Spielen?
Oder gibts da irgendwelche (cast)-möglichkeiten um an die individuellen Bauzeiten zuzugreifen?
Grüße!
Zuletzt bearbeitet: