// Beispiel Klasse fuer FluSuServlet // WWW & Servlets // Fachgruppe Softwaretechnik // Uwe Poborski 14.04.99 // Flughafen.java // benoetigte Klassen: // Flug // Flugzeug // ZeitAngabe import java.io.*; import java.awt.*; class Flughafen { public String Name; public String Kuerzel; public int RelZeit; public int Farbe; public float Distanz; public int x, y; public Flughafen Naechster; public Flug Fluege; public Flughafen() { this(null, null, 0); } public Flughafen(String Name, String Kuerzel, int RelZeit) { this.Name = Name; this.Kuerzel = Kuerzel; this.RelZeit = RelZeit; Naechster = null; Farbe = FlugGraph.FARBLOS; Distanz = 0; } public Flughafen gibFlughafenMitName(String Name) { if (Name.equals(this.Name)) return this; else if (Naechster != null) return Naechster.gibFlughafenMitName(Name); else return null; } public Flughafen gibFlughafenMitKuerzel(String Kuerzel) { if (Kuerzel.equals(this.Kuerzel)) return this; else if (Naechster != null) return Naechster.gibFlughafenMitKuerzel(Kuerzel); else return null; } public void anhaengen(Flughafen Neu) { if (Naechster == null) Naechster = Neu; else Naechster.anhaengen(Neu); } public void einfuegen(Flughafen Neu) { if (Neu != null) Neu.Naechster = this; } public Flug fluegeNach(ZeitAngabe ZA) { Flug F = Fluege; while (F != null) { if (F.Anfang.istSpaeterals(ZA)) return F; F = F.Naechster; } return F; } public void show(boolean all) { System.out.print("Flughafen " + Name + ", " + Kuerzel + " " + RelZeit); if (all) System.out.print(" F:" + Farbe + " D:" + Distanz); System.out.println(""); if (Fluege != null) Fluege.show(all); if (Naechster != null) Naechster.show(all); } public void paint(Graphics g, FontMetrics fm) { if (Farbe == FlugGraph.GRUENEFARBE) g.setColor(Color.green); else if (Farbe == FlugGraph.ROTEFARBE) g.setColor(Color.red); else g.setColor(Color.white); int w = fm.stringWidth(Name) + 10; int h = fm.getHeight() + 4; g.fillRect(x - w/2, y - h / 2, w, h); g.setColor(Color.black); g.drawRect(x - w/2, y - h / 2, w-1, h-1); g.drawString(Name, x - (w-10)/2, (y - (h-4)/2) + fm.getAscent()); } }