+ Antworten
Ergebnis 1 bis 13 von 13

Thema: Benötige Erklärung des folgenden Source Codes eines JavaApplets...

  1. #1
    TP-Senior Webworx macht alles soweit korrekt
    Registriert seit
    Sep 2001
    Ort
    Hamburg
    Beiträge
    130

    Question Benötige Erklärung des folgenden Source Codes eines JavaApplets...

    Zum bessern Verständnis benötige ich bitte eine Erklärung des folgenden Source Codes.
    Ich muss jeden einzelnen Teil verstehen, was da passiert, was festgelegt ist, usw. Danke für eure Hilfe!


    import java.awt.event.*;
    import java.awt.Graphics;
    import java.lang.Math;

    public class MouseTrack extends java.applet.Applet implements MouseListener, MouseMotionListener {

    int mx, my;
    int onaroll;

    public void init() {
    onaroll = 0;
    setSize(500, 500);
    addMouseListener(this);
    addMouseMotionListener(this);
    }

    public void destroy() {
    removeMouseListener(this);
    removeMouseMotionListener(this);
    }

    public void paint(Graphics g) {
    g.drawRect(0, 0, getSize().width - 1, getSize().height - 1);
    mx = (int)(Math.random()*1000) % (getSize().width - (getSize().width/10));
    my = (int)(Math.random()*1000) % (getSize().height - (getSize().height/10));
    g.drawRect(mx, my, (getSize().width/10) - 1, (getSize().height/10) - 1);
    }

    /*
    * Mouse methods
    */
    public void mouseDragged(MouseEvent e) {
    }

    public void mouseMoved(MouseEvent e) {
    e.consume();
    if((e.getX() % 3 == 0) && (e.getY() % 3 == 0))
    repaint();
    }

    public void mousePressed(MouseEvent e) {
    int x = e.getX();
    int y = e.getY();
    e.consume();
    requestFocus();
    if((mx < x && x < mx+getSize().width/10-1) && (my < y && y < my+getSize().height/10-1)) {
    if(onaroll > 0) {
    switch(onaroll%4) {
    case 0:
    play(getCodeBase(), "sounds/tiptoe.thru.the.tulips.au");
    break;
    case 1:
    play(getCodeBase(), "sounds/danger,danger...!.au");
    break;
    case 2:
    play(getCodeBase(), "sounds/adapt-or-die.au");
    break;
    case 3:
    play(getCodeBase(), "sounds/cannot.be.completed.au");
    break;
    }
    onaroll++;
    if(onaroll > 5)
    getAppletContext().showStatus("You're on your way to THE HALL OF FAME:"
    + onaroll + "Hits!");
    else
    getAppletContext().showStatus("YOU'RE ON A ROLL:" + onaroll + "Hits!");
    }
    else {
    getAppletContext().showStatus("HIT IT AGAIN! AGAIN!");
    play(getCodeBase(), "sounds/that.hurts.au");
    onaroll = 1;
    }
    }
    else {
    getAppletContext().showStatus("You hit nothing at (" + x + ", " + y + "), exactly\n");
    play(getCodeBase(), "sounds/thin.bell.au");
    onaroll = 0;
    }
    repaint();
    }

    public void mouseReleased(MouseEvent e) {
    }

    public void mouseEntered(MouseEvent e) {
    repaint();
    }

    public void mouseExited(MouseEvent e) {
    onaroll = 0;
    repaint();
    }

    public void mouseClicked(MouseEvent e) {
    }

    /**
    * Focus methods
    */
    public void keyDown(int key) {
    requestFocus();
    onaroll = 0;
    play(getCodeBase(), "sounds/ip.au");
    }

    public String getAppletInfo() {
    return "Title: JumpingBox\nAuthor: Anonymous";
    }
    }

  2. #2
    TP-Greis Lars bringt sich richtig ein
    Registriert seit
    Jun 2001
    Beiträge
    5.468
    Ich bin mir nicht sicher, ob eine bloße zeilenweise Erklärung des Sourcecodes hilfreich ist. Hier mal ein Beispiel:

    Code:
    // Inkludieren der benötigten Pakete
    import java.awt.event.*;   
    import java.awt.Graphics;   
    import java.lang.Math;  
    
    // Die Hauptklasse (auch Name nach des Kompilats -> MousTrack.class)
    public class MouseTrack extends java.applet.Applet implements MouseListener, MouseMotionListener { 
    
    // Integer-Variablen
    int mx, my;
    int onaroll;   
    
    ...
    Der Teil "public class" ist extrem bedeutsam für ein Java-Programm. Da hilft eine knappe Erkläuterung nicht viel weiter, wie ich finde.

  3. #3
    TP-Member Akeks macht alles soweit korrekt
    Registriert seit
    Dec 2001
    Ort
    Hamburg
    Beiträge
    51
    Hi Schmobi, danke für deine bisherige Erläuterung.
    Könntest du dann einfach bitte das ganze erklären, auch wenns dann net so kurz ausfallen wird`Das wäre echt cool, und würde mir sehr helfen.. wenns net anders geht, dann muss es eben ausführlich erklärt werden Würde mich wirklich sehr glücklich machen, danke

  4. #4
    TP-Member Akeks macht alles soweit korrekt
    Registriert seit
    Dec 2001
    Ort
    Hamburg
    Beiträge
    51
    Vielleicht ist es nicht klar... Akeks=Webworx... hab den Beitrag von der Schule aus geschrieben, und da hatte ich nur Zugang auf den Webworx-Account

    Könntest du dann bitte das gesamte Script erklären? Oder kennst du jemanden, der mir diesen Gefallen tun würde?

  5. #5
    TP-Greis Lars bringt sich richtig ein
    Registriert seit
    Jun 2001
    Beiträge
    5.468
    Das mit Deinem Doppelleben habe ich mirt schon fast gedacht. Ich habe miomentan recht wenig Zeit - zwecks Erläuterung müsste ioch mich auch wieder ein bißchen in Java einarbeiten - aber wenn Du Zeit hast, kann ich das irgendwann die Woche sicherlich machen.

  6. #6
    TP-Member Akeks macht alles soweit korrekt
    Registriert seit
    Dec 2001
    Ort
    Hamburg
    Beiträge
    51
    Ich weiß, als Mr. Bond bin ich nicht gerade geeignet *g*
    Also, es ist so... ich brauche die Erklärung bis spätestens Mittwoch, 11:30h (MEZ). Schaffst du's bis dahin? Das wäre echt klasse... ansonsten würde ich mich auch freuen, wenn du mir wen nennen könntest, der mir da helfen könnte bis Mittwoch! *?*

  7. #7
    TP-Greis Lars bringt sich richtig ein
    Registriert seit
    Jun 2001
    Beiträge
    5.468
    Ich versuche es auf jeden Fall. Ansonsten kenn eich leider keinen, der sich mit Java auskennt.

  8. #8
    TP-Member Akeks macht alles soweit korrekt
    Registriert seit
    Dec 2001
    Ort
    Hamburg
    Beiträge
    51
    Ok, das wäre wirklich GENIAL!
    Wenn du nicht fertig wirst, dann nur das, was du gerade so geschafft hast.. wäre immerhin etwas, und würde mir auch schon sehr helfen! THX!

  9. #9
    TP-Member Akeks macht alles soweit korrekt
    Registriert seit
    Dec 2001
    Ort
    Hamburg
    Beiträge
    51
    Hast du etwas gemacht, Schmobi?
    Brauche es morgen, spätestens um 9h ... sag mir bitte rechtzeitig Bescheid, ob du irgendwas hast Vielen Dank nochmal!

  10. #10
    TP-Greis Lars bringt sich richtig ein
    Registriert seit
    Jun 2001
    Beiträge
    5.468
    Den Termin haben wir dann wohl verpennt - ich habe momentan sehr viel zu tun. Brauchst denn immer noch die Erläuterung?

  11. #11
    TP-Member Akeks macht alles soweit korrekt
    Registriert seit
    Dec 2001
    Ort
    Hamburg
    Beiträge
    51
    Jo, bräuchte ich noch.. bis wann könnteste sie machen?

  12. #12
    TP-Member Akeks macht alles soweit korrekt
    Registriert seit
    Dec 2001
    Ort
    Hamburg
    Beiträge
    51
    Schmobi,
    schaffst du bis morgen früh noch etwas? *hoff*
    Sag mir bitte Bescheid! Dangge

  13. #13
    TP-Greis Lars bringt sich richtig ein
    Registriert seit
    Jun 2001
    Beiträge
    5.468
    Hier schon mal der Anfang, ich muss mich für die Details nochmal in ein paar Dingen wieder einlesen:

    Code:
    // Benoetigte Pake inkludieren
    import java.awt.event.*; 
    import java.awt.Graphics; 
    import java.lang.Math; 
    
    // Definition der Hauptklasse (später auch Name des Kompilats -> MoueTrack.class)
    public class MouseTrack extends java.applet.Applet implements MouseListener, MouseMotionListener { 
    
    // zwei Integer-Variablen
    int mx, my; 
    int onaroll; 
    
    // Initieren des Konstruktors fuer die Hauptklasse
    public void init() { 
    onaroll = 0; 
    setSize(500, 500); 
    addMouseListener(this); 
    addMouseMotionListener(this); 
    } 
    
    // Destruktor (das extake Gegenteil des Konstruktors add <-> remove)
    public void destroy() { 
    removeMouseListener(this); 
    removeMouseMotionListener(this); 
    } 
    
    // Funktion paint() -> Zeichnet irgendwelche Rechtecke, muesste man mal kompilieren, um zu sehen, was da rauskommt :)
    public void paint(Graphics g) { 
    g.drawRect(0, 0, getSize().width - 1, getSize().height - 1); 
    mx = (int)(Math.random()*1000) % (getSize().width - (getSize().width/10)); 
    my = (int)(Math.random()*1000) % (getSize().height - (getSize().height/10)); 
    g.drawRect(mx, my, (getSize().width/10) - 1, (getSize().height/10) - 1); 
    } 
    
    // *********************************************
    // Mausemethoden
    // Alle folgenden Funktionen dienen der Kollisionsabfrage
    // Es werden die Position sowie die Tasten abgefragt
    // *********************************************
    public void mouseDragged(MouseEvent e) { 
    } 
    
    
    public void mouseMoved(MouseEvent e) { 
    e.consume(); 
    if((e.getX() % 3 == 0) && (e.getY() % 3 == 0)) 
    repaint(); 
    } 
    
    // Linksklick
    public void mousePressed(MouseEvent e) { 
    int x = e.getX(); 
    int y = e.getY(); 
    e.consume(); 
    requestFocus(); 
    if((mx < x && x < mx+getSize().width/10-1) && (my < y && y < my+getSize().height/10-1)) { 
    if(onaroll > 0) { 
    // Mit diesem Switch werden je 
    // nach Mausaktion Sounds ausgegeben
    switch(onaroll%4) { 
    case 0: 
    play(getCodeBase(), "sounds/tiptoe.thru.the.tulips.au"); 
    break; 
    case 1: 
    play(getCodeBase(), "sounds/danger,danger...!.au"); 
    break; 
    case 2: 
    play(getCodeBase(), "sounds/adapt-or-die.au"); 
    break; 
    case 3: 
    play(getCodeBase(), "sounds/cannot.be.completed.au"); 
    break; 
    } 
    onaroll++; 
    // Punktezahl ermiteln und
    //  je nach Stand Textausgabe
    if(onaroll > 5) 
    getAppletContext().showStatus("You're on your way to THE HALL OF FAME:" 
    + onaroll + "Hits!"); 
    else 
    getAppletContext().showStatus("YOU'RE ON A ROLL:" + onaroll + "Hits!"); 
    } 
    else { 
    getAppletContext().showStatus("HIT IT AGAIN! AGAIN!"); 
    play(getCodeBase(), "sounds/that.hurts.au"); 
    onaroll = 1; 
    } 
    } 
    else { 
    getAppletContext().showStatus("You hit nothing at (" + x + ", " + y + "), exactly\n"); 
    play(getCodeBase(), "sounds/thin.bell.au"); 
    onaroll = 0; 
    } 
    repaint(); 
    } 
    
    // Klick beendet
    public void mouseReleased(MouseEvent e) { 
    } 
    
    // Wenn Maus innerhalb eines bestimmten 
    //Bereichs Spielflaeche neu zeichnen
    public void mouseEntered(MouseEvent e) { 
    repaint(); 
    } 
    
    // Wenn Maus ausserhalb eines bestimmten 
    //Bereichs Spielflaeche neu zeichnen
    public void mouseExited(MouseEvent e) { 
    onaroll = 0; 
    repaint(); 
    } 
    
    public void mouseClicked(MouseEvent e) { 
    } 
    
    // Keyboard-Abfragen aus dem Inputstream (?)
    public void keyDown(int key) { 
    requestFocus(); 
    onaroll = 0; 
    play(getCodeBase(), "sounds/ip.au"); 
    } 
    
    // Das Teil generiert die Info-Box des Applets
    public String getAppletInfo() { 
    return "Title: JumpingBox\nAuthor: Anonymous"; 
    } 
    }

+ Antworten

Aktive Benutzer

Aktive Benutzer

Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)

     

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51