/** * Die Klasse SuMAnwendung wurde automatisch erstellt: * * @author * @version 31.5.2006 */ import sum.komponenten.*; import sum.werkzeuge.*; import sum.ereignis.*; public class SuMAnwendung extends EBAnwendung { // Objekte private Etikett hatEtikettUnserePinguinstation; private Tabelle hatTabelle1; private Etikett hatEtikettJahresdurchschnitt1; private Etikett hatEtikettJahresdurchschnitt2; private Etikett hatEtikettJahreshoechstwert; private Etikett hatEtikettJahresniedrigstwert; private Knopf hatKnopfRechne; private Textfeld hatTextfeld1; private Textfeld hatTextfeld2; private Textfeld hatTextfeld3; private Etikett hatEtikettWertSchonVorhanden; private Textfeld hatTextfeld4; private Knopf hatKnopfStart; private Schalter hatSchalter1; private Etikett hatEtikettWertKonnteNicht; private Etikett hatEtikettWertVorhandenImMonat; private Schalter hatSchalter2; private Textfeld hatTextfeld5; private Textfeld hatTextfeld6; private Knopf hatKnopfTestwerte; private Etikett hatEtikettCopyright; Controller Controli; /** * Konstruktor */ public SuMAnwendung() { //Initialisierung der Oberklasse super(813, 664); //Die View hat nun eine "hat"-Verbindung zum Controller: Controli = new Controller(); hatEtikettUnserePinguinstation = new Etikett(280, 25, 300, 40, "Unsere Pinguinstation"); // Ausrichtung hatEtikettUnserePinguinstation.setzeAusrichtung(Ausrichtung.LINKS); hatTabelle1 = new Tabelle(56, 84, 356, 235, 12, 3); hatTabelle1.setzeSpaltentitelAn("Monate", 1); hatTabelle1.setzeSpaltentitelAn("Niedriste", 2); hatTabelle1.setzeSpaltentitelAn("Hoechste", 3); hatEtikettJahreshoechstwert = new Etikett(50, 410, 120, 26, "Jahreshoechstwert:"); // Ausrichtung hatEtikettJahreshoechstwert.setzeAusrichtung(Ausrichtung.LINKS); hatEtikettJahresniedrigstwert = new Etikett(50, 450, 120, 25, "Jahresniedrigstwert:"); // Ausrichtung hatEtikettJahresniedrigstwert.setzeAusrichtung(Ausrichtung.LINKS); hatEtikettJahresdurchschnitt1 = new Etikett(50, 490, 250, 25, "Jahresdurchschnitt der Niedrigstwerte:"); // Ausrichtung hatEtikettJahresdurchschnitt1.setzeAusrichtung(Ausrichtung.LINKS); hatEtikettJahresdurchschnitt2 = new Etikett(50, 530, 250, 25, "Jahresdurchschnitt der Hoechstwerte:"); // Ausrichtung hatEtikettJahresdurchschnitt2.setzeAusrichtung(Ausrichtung.LINKS); hatKnopfRechne = new Knopf(50, 340, 150, 46, "RECHNE!!!"); hatKnopfRechne.setzeBearbeiterGeklickt("hatKnopfRechneGeklickt"); hatKnopfTestwerte = new Knopf(250, 340, 150, 46, "Werte von 2005"); hatKnopfTestwerte.setzeBearbeiterGeklickt("hatKnopfTestwerteGeklickt"); hatTextfeld1 = new Textfeld(300, 410, 100, 25, ""); // Ausrichtung hatTextfeld1.setzeAusrichtung(Ausrichtung.LINKS); hatTextfeld2 = new Textfeld(300, 450, 100, 25, ""); // Ausrichtung hatTextfeld2.setzeAusrichtung(Ausrichtung.LINKS); hatTextfeld3 = new Textfeld(300, 490, 100, 25, ""); // Ausrichtung hatTextfeld3.setzeAusrichtung(Ausrichtung.LINKS); hatEtikettWertSchonVorhanden = new Etikett(448, 113, 142, 25, "Wert schon vorhanden?"); // Ausrichtung hatEtikettWertSchonVorhanden.setzeAusrichtung(Ausrichtung.LINKS); hatTextfeld4 = new Textfeld(612, 114, 100, 25, "0"); // Ausrichtung hatTextfeld4.setzeAusrichtung(Ausrichtung.LINKS); hatKnopfStart = new Knopf(516, 155, 135, 48, "Start"); hatKnopfStart.setzeBearbeiterGeklickt("hatKnopfStartGeklickt"); hatSchalter1 = new Schalter(450, 231, 25, 25, "Schalter 1"); hatSchalter1.setzeBearbeiterGeklickt("hatSchalter1Geklickt"); hatEtikettWertKonnteNicht = new Etikett(487, 232, 208, 25, "Wert konnte nicht gefunden werden!"); // Ausrichtung hatEtikettWertKonnteNicht.setzeAusrichtung(Ausrichtung.LINKS); hatEtikettWertVorhandenImMonat = new Etikett(488, 276, 151, 26, "Wert vorhanden im Monat:"); // Ausrichtung hatEtikettWertVorhandenImMonat.setzeAusrichtung(Ausrichtung.LINKS); hatSchalter2 = new Schalter(450, 276, 25, 25, "Schalter 2"); hatSchalter2.setzeBearbeiterGeklickt("hatSchalter2Geklickt"); hatTextfeld5 = new Textfeld(647, 278, 100, 25, ""); // Ausrichtung hatTextfeld5.setzeAusrichtung(Ausrichtung.LINKS); hatTextfeld6 = new Textfeld(300, 530, 100, 25, ""); // Ausrichtung hatTextfeld6.setzeAusrichtung(Ausrichtung.LINKS); // Die Tabelle wird mit den Monatsnamen ausgef?llt: hatEtikettUnserePinguinstation.setzeSchriftfarbe(1); this.initialisiere(); hatEtikettCopyright = new Etikett(575, 550, 180, 26, "Copyright by Matze and Wotti"); // Ausrichtung hatEtikettCopyright.setzeAusrichtung(Ausrichtung.LINKS); hatEtikettCopyright.setzeSchriftfarbe(5); hatEtikettUnserePinguinstation.setzeSchriftGroesse(25); hatEtikettUnserePinguinstation.setzeSchriftArt("Arial"); } /** * Vorher: Ereignis GeklicktvonhatKnopfRechne fand statt. * Nachher: (schreiben Sie, was in dieser Methode ausgefuehrt wird) */ public void hatKnopfRechneGeklickt() { // 1. Einlesen der Werte aus der Tabelle: Controli.niedrigsteWerteSpeichern(this.tiefeTemperaturenEinlesen()); Controli.hoechsteWerteSpeichern(this.hoheTemperaturenEinlesen()); //2. Die Extremwerte werden ausgegeben: hatTextfeld2.setzeInhalt(Controli.errechneNiederigstenWert()); hatTextfeld1.setzeInhalt(Controli.errechneHoechstenWert()); //3. Es werden die Durchschnittswerte ausgegeben hatTextfeld6.setzeInhalt(Controli.errechneDurchschnittHoch()); hatTextfeld3.setzeInhalt(Controli.errechneDurchschnittTief()); } /** * Vorher: Ereignis GeklicktvonhatKnopfStart fand statt. * Nachher: (schreiben Sie, was in dieser Methode ausgefuehrt wird) */ public void hatKnopfStartGeklickt() { // Einlesen der Werte aus der Tabelle: Controli.niedrigsteWerteSpeichern(this.tiefeTemperaturenEinlesen()); Controli.hoechsteWerteSpeichern(this.hoheTemperaturenEinlesen()); //Zun?chst werden beide Schalter ausgeschaltet, um mehrmalige Benutzung zu gewaehrleisten. hatSchalter1.schalteAus(); hatSchalter2.schalteAus(); //Dann wird das Ausgabefeld gelehrt hatTextfeld5.loescheAlles(); // Die Schleter werden je nach Ergebnis geschaltet. if(( Controli.gibtesdieZahl((float)hatTextfeld4.inhaltAlsGanzeZahl())[0]) == 1) {hatSchalter2.schalteAn();} else {hatSchalter1.schalteAn();} if (Controli.gibtesdieZahl((float)hatTextfeld4.inhaltAlsGanzeZahl())[1]==1) {hatTextfeld5.haengeAn("Januar, ");} if (Controli.gibtesdieZahl((float)hatTextfeld4.inhaltAlsGanzeZahl())[2]==1) {hatTextfeld5.haengeAn("Februar, ");} if (Controli.gibtesdieZahl((float)hatTextfeld4.inhaltAlsGanzeZahl())[3]==1) {hatTextfeld5.haengeAn("Maerz, ");} if (Controli.gibtesdieZahl((float)hatTextfeld4.inhaltAlsGanzeZahl())[4]==1) {hatTextfeld5.haengeAn("April, ");} if (Controli.gibtesdieZahl((float)hatTextfeld4.inhaltAlsGanzeZahl())[5]==1) {hatTextfeld5.haengeAn("Mai, ");} if (Controli.gibtesdieZahl((float)hatTextfeld4.inhaltAlsGanzeZahl())[6]==1) {hatTextfeld5.haengeAn("Juni, ");} if (Controli.gibtesdieZahl((float)hatTextfeld4.inhaltAlsGanzeZahl())[7]==1) {hatTextfeld5.haengeAn("Juli, ");} if (Controli.gibtesdieZahl((float)hatTextfeld4.inhaltAlsGanzeZahl())[8]==1) {hatTextfeld5.haengeAn("August, ");} if (Controli.gibtesdieZahl((float)hatTextfeld4.inhaltAlsGanzeZahl())[9]==1) {hatTextfeld5.haengeAn("September, ");} if (Controli.gibtesdieZahl((float)hatTextfeld4.inhaltAlsGanzeZahl())[10]==1) {hatTextfeld5.haengeAn("Oktober, ");} if (Controli.gibtesdieZahl((float)hatTextfeld4.inhaltAlsGanzeZahl())[11]==1) {hatTextfeld5.haengeAn("November, ");} if (Controli.gibtesdieZahl((float)hatTextfeld4.inhaltAlsGanzeZahl())[12]==1) {hatTextfeld5.haengeAn("Dezember, ");} // Nun muss nur noch das letzte Komma entfernt werden hatTextfeld5.markiereAlles(); if(hatTextfeld5.markierungsEnde()>2) {hatTextfeld5.loesche(hatTextfeld5.markierungsEnde()-1,hatTextfeld5.markierungsEnde() );} } // Dank dieser Methode muss man nicht alle Werte manuell eintippen: public void hatKnopfTestwerteGeklickt() { hatTabelle1.setzeInhaltAn("-78", 1, 2); hatTabelle1.setzeInhaltAn("-71", 2, 2); hatTabelle1.setzeInhaltAn("-67", 3, 2); hatTabelle1.setzeInhaltAn("-90", 4, 2); hatTabelle1.setzeInhaltAn("-60", 5, 2); hatTabelle1.setzeInhaltAn("-52", 6, 2); hatTabelle1.setzeInhaltAn("-33", 7, 2); hatTabelle1.setzeInhaltAn("-20", 8, 2); hatTabelle1.setzeInhaltAn("-50", 9, 2); hatTabelle1.setzeInhaltAn("-65", 10, 2); hatTabelle1.setzeInhaltAn("-74", 11, 2); hatTabelle1.setzeInhaltAn("-78", 12, 2); hatTabelle1.setzeInhaltAn("-2", 1, 3); hatTabelle1.setzeInhaltAn("3", 2, 3); hatTabelle1.setzeInhaltAn("6", 3, 3); hatTabelle1.setzeInhaltAn("10", 4, 3); hatTabelle1.setzeInhaltAn("12", 5, 3); hatTabelle1.setzeInhaltAn("15", 6, 3); hatTabelle1.setzeInhaltAn("21", 7, 3); hatTabelle1.setzeInhaltAn("20", 8, 3); hatTabelle1.setzeInhaltAn("16", 9, 3); hatTabelle1.setzeInhaltAn("8", 10, 3); hatTabelle1.setzeInhaltAn("-1", 11, 3); hatTabelle1.setzeInhaltAn("-3", 12, 3); } /** * Vorher: Ereignis GeklicktvonhatSchalter1 fand statt. * Nachher: (schreiben Sie, was in dieser Methode ausgefuehrt wird) */ public void hatSchalter1Geklickt() { // Schreiben Sie hier den Text ihres Dienstes } /** * Vorher: Ereignis GeklicktvonhatSchalter2 fand statt. * Nachher: (schreiben Sie, was in dieser Methode ausgefuehrt wird) */ public void hatSchalter2Geklickt() { // Schreiben Sie hier den Text ihres Dienstes } // Diese Methode tr?gt die Monatsnamen in die Tabelle ein und setzt alle Temperaturen auf 0(Zwecks Fehlervermeidung beim Einlesen): private void initialisiere() { for (int j = 2; j<4; j++) { for (int i = 1; i<13; i++) { hatTabelle1.setzeInhaltAn(0, i, j); } } hatTabelle1.setzeInhaltAn("Januar", 1, 1); hatTabelle1.setzeInhaltAn("Februar", 2, 1); hatTabelle1.setzeInhaltAn("Maerz", 3, 1); hatTabelle1.setzeInhaltAn("April", 4, 1); hatTabelle1.setzeInhaltAn("Mai", 5, 1); hatTabelle1.setzeInhaltAn("Juni", 6, 1); hatTabelle1.setzeInhaltAn("Juli", 7, 1); hatTabelle1.setzeInhaltAn("August", 8, 1); hatTabelle1.setzeInhaltAn("September", 9, 1); hatTabelle1.setzeInhaltAn("Oktober", 10, 1); hatTabelle1.setzeInhaltAn("November", 11, 1); hatTabelle1.setzeInhaltAn("Dezember", 12, 1); } //Diese Methode gibt ein 12-stelliges Feld zur?ck, in welchem die tiefsten Temperaturen eingelesen wurden: private float [] tiefeTemperaturenEinlesen() { float [] speicher = new float [12]; for (int i = 0; i < 11; i++) { speicher [i] = (float)hatTabelle1.inhaltAlsGanzeZahlAn(i+1 , 2); } speicher [11] = (float)hatTabelle1.inhaltAlsGanzeZahlAn(12 , 2); return speicher; } //Diese Methode gibt ein 12-stelliges Feld zur?ck, in welchem die "h?chsten" Temperaturen eingelesen wurden: private float [] hoheTemperaturenEinlesen() { float [] speicher = new float [12]; for (int i = 0; i<11; i++) { speicher [i] = (float)hatTabelle1.inhaltAlsGanzeZahlAn(i+1 , 3); } speicher [11] = (float)hatTabelle1.inhaltAlsGanzeZahlAn(12 , 3); return speicher; } }