Benutzer-Werkzeuge

Webseiten-Werkzeuge


convert:frombluej:start

Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.

Link zu dieser Vergleichsansicht

Beide Seiten der vorigen RevisionVorhergehende Überarbeitung
Nächste Überarbeitung
Vorhergehende Überarbeitung
convert:frombluej:start [2023/01/28 21:31] – [Hauptprogramm anstatt manuellem Instanzieren von Objekten] Martin Pabstconvert:frombluej:start [2023/01/29 13:13] (aktuell) Martin Pabst
Zeile 1: Zeile 1:
-====== Konvertieren eines BlueJ-Projekts ====== +====== Übertragen von Java-Programmen in die Online-IDE ====== 
-<WRAP center round info 100%> +<WRAP center round info 70%> 
-Es gibt kein "Rezept", mit dem man jedes BlueJ-Projekt auf dieselbe Art und Weise in ein Online-IDE-Programm verwandeln kannaber meist ist es dennoch recht einfach möglich. Im Folgenden zeige ich, wie man grundsätzlich vorgeht und wie sich auftretende Probleme lösen lassen.+Die Online-IDE deckt einen großen Teil des Java-Sprachumfangs ab ([[unterschiede_zu_java:start|Details siehe hier]])zudem sind [[https://www.online-ide.de/api_documentation.html|in ihrer Laufzeitbibliothek]] viele Klassen der Java Standard Library nachgebildet. Dadurch ist es möglich, die meisten Java-Programme, die im Informatikunterricht geschrieben wurden, auf einfache Weise in die Online-IDE zu übertragen\\ \\ 
 +Im Folgenden zeige ich, wie man dabei grundsätzlich vorgeht und wie sich auftretende Probleme lösen lassen.
   * Grundsätzliches Vorgehen   * Grundsätzliches Vorgehen
   * ''import''-Statements   * ''import''-Statements
Zeile 7: Zeile 8:
   * Verwendung der **Graphics and Games-Bibliothek** des Cornelsen-Verlages   * Verwendung der **Graphics and Games-Bibliothek** des Cornelsen-Verlages
   * Verwendung der **Processing**-Bibliothek   * Verwendung der **Processing**-Bibliothek
-  * Benutzereingaben per Tastatur +  * Besondere Klassen der Online-IDE 
-  Die Grafikklassen der Online-IDE+    * Benutzereingaben per Tastatur 
 +    Farbige Ausgabe mit ''print'' und ''println'' 
 +    * Farben 
 +    * Klassen zur Grafikausgabe und Spieleprogrammierung mit der Online-IDE 
 +    * Soundausgabe 
 +    * Netzwerkprogrammierung 
 +    * Zugriff auf Datenbanken 
 + 
 +**Nützliche Links:** \\ 
 +  * [[https://www.online-ide.de/api_documentation.html|JavaDoc-ähnline Übersicht über alle Klassen von LearnJ]] 
 +  * [[api:documentation:start|Dokumentation der Klassenbibliothek mit Erklärungen und vielen Beispielprogrammen]] 
 +  * [[api:documentation:grafik:start|Dokumentation der Grafikklassen mit Erklärungen und vielen Beispielprogrammen]] 
 +  * [[api:documentation:spiele:start|Dokumentation der Möglichkeiten zur Spieleprogrammierung mit vielen Beispielprogrammen]] 
 </WRAP> </WRAP>
  
Zeile 30: Zeile 44:
  
 ===== Hauptprogramm anstatt manuellem Instanzieren von Objekten ===== ===== Hauptprogramm anstatt manuellem Instanzieren von Objekten =====
-In BlueJ startet man ein Programm üblicherweise, indem man per Maus ein Objekt einer Klasse instanziert und dann eine Methode davon aufruft: +In BlueJ startet man ein Programm üblicherweise, indem man per Maus ein Objekt einer Klasse instanziert und dann eine Methode davon aufruft: \\  
-{{:convert:frombluej:pasted:20230128-204628.png:300 }} +{{:convert:frombluej:pasted:20230128-204628.png?300 }} 
-{{ :convert:frombluej:pasted:20230128-204709.png:300}}+{{ :convert:frombluej:pasted:20230128-204709.png?300}}
 <HTML> <HTML>
 <div style="clear: both"></div> <div style="clear: both"></div>
Zeile 48: Zeile 62:
 Hat ein Workspace also nur ein einziges Hauptprogramm, so wird immer genau dieses gestartet. Hat ein Workspace also nur ein einziges Hauptprogramm, so wird immer genau dieses gestartet.
 </WRAP> </WRAP>
 +
 +===== Kein Exception Handling in der Online-IDE =====
 +<WRAP center round info 100%>
 +Der Sprachumfang der Online-IDE umfasst kein Exception Handling. Daher müssen bei der Übertragung von Java-Programmen in die Online-IDE alle ''throws''-Deklarationen sowie die ''try''...''catch''-Rahmen entfernt werden. Der Vorteil dabei ist, dass sich auch die Schüler/innen nicht um Exceptions kümmern müssen, wenn sie mit der Online-IDE programmieren
 +</WRAP>
 +
 +===== Keine Nebenläufigkeit in der Online-IDE =====
 +<WRAP center round info 100%>
 +Die Online-IDE kann Programme leider nicht nebenläufig ausführen, d.h. es gibt keine Threads. Java-Programme, die Nebenläufigkeit nutzen (d.h. mehrere Threads instanzieren und starten) können derzeit leider noch nicht in der Online-IDE ausgeführt werden. Ich arbeite gerade an einem neuen Compiler, der u.a. auch Threads ermöglicht, er wird aber vorraussichtlich nicht vor 2024 fertig.
 +</WRAP>
 +
 +
  
 ===== Verwendung der Graphics and Games-Bibliothek des Cornelsen-Verlages ===== ===== Verwendung der Graphics and Games-Bibliothek des Cornelsen-Verlages =====
Zeile 61: Zeile 87:
   * Ereignisbehandlung   * Ereignisbehandlung
 sind in der Online-IDE bereits Bestandteil der Systembibliothek und müssen nicht von BlueJ her herüberkopiert werden. Dafür muss die Graphics and Games-Bibliothek je Workspace aber einmalig aktiviert werden: sind in der Online-IDE bereits Bestandteil der Systembibliothek und müssen nicht von BlueJ her herüberkopiert werden. Dafür muss die Graphics and Games-Bibliothek je Workspace aber einmalig aktiviert werden:
-{{ :convert:frombluej:pasted:20230128-212503.png?300}}+{{ :convert:frombluej:pasted:20230128-212503.png?200}}
   * Rechtsklick auf den Workspace -> Einstellungen   * Rechtsklick auf den Workspace -> Einstellungen
   * Häkchen bei der Graphics and Games-Bibliothek setzen   * Häkchen bei der Graphics and Games-Bibliothek setzen
   * Mit Klick auf OK bestätigen.   * Mit Klick auf OK bestätigen.
 {{ :convert:frombluej:pasted:20230128-212605.png?600 }} {{ :convert:frombluej:pasted:20230128-212605.png?600 }}
 +==== Anpassen von Klassenbezeichnern ====
 +Da die Online-IDE nur einen Namensraum für Klassenbezeichner hat und die Bezeichner ''Text'' und ''Turtle'' bereits vergeben waren, heißen die entsprechenden Klassen der Graphics and Games-Bibliothek in der Online-IDE ''GText'' und ''GTurtle''. Entsprechende Referenzen müssen beim Import von Projekten in die Online-IDE also geändert werden.
 ==== Nützliche Links zur Graphics and Games Bibliothek: ==== ==== Nützliche Links zur Graphics and Games Bibliothek: ====
   * [[https://informatikschulbuch.de/jahrgangsstufe-9-uebersicht/objektorientierte-modellierung-und-programmierung/ |Vorlagen für alle Aufgaben aus dem Cornelsen-Buch für Jgst. 9 (Vorlagen von Herrn Horzella für die Online-IDE etwas weiter unten auf der Seite)]]   * [[https://informatikschulbuch.de/jahrgangsstufe-9-uebersicht/objektorientierte-modellierung-und-programmierung/ |Vorlagen für alle Aufgaben aus dem Cornelsen-Buch für Jgst. 9 (Vorlagen von Herrn Horzella für die Online-IDE etwas weiter unten auf der Seite)]]
   * [[https://informatikschulbuch.de/jahrgangsstufe-10/objektorientierte-modellierung-und-programmierungjgst10/ |Vorlagen für alle Aufgaben aus dem Cornelsen-Buch für Jgst. 10 (Vorlagen von Herrn Horzella für die Online-IDE etwas weiter unten auf der Seite, sind Stand 28.01.2023 noch in Arbeit)]]   * [[https://informatikschulbuch.de/jahrgangsstufe-10/objektorientierte-modellierung-und-programmierungjgst10/ |Vorlagen für alle Aufgaben aus dem Cornelsen-Buch für Jgst. 10 (Vorlagen von Herrn Horzella für die Online-IDE etwas weiter unten auf der Seite, sind Stand 28.01.2023 noch in Arbeit)]]
   * [[api:documentation:gng:start|Dokumentation zur Graphics'n Games-API des Cornelsen-Verlages]]   * [[api:documentation:gng:start|Dokumentation zur Graphics'n Games-API des Cornelsen-Verlages]]
 +
 +===== Verwendung des Processing-Frameworks =====
 +In der Online-IDE ist fast das komplette Processing-Framework enthalten (Klasse ''PApplet''). Wie es in der Online-IDE verwendet werden kann [[api:documentation:processing:start|ist hier beschrieben.]] \\ 
 +Processing-Programmen in der Programmiersprache Java bestehen üblicherweise aus der Definition einer Kindklasse von ''PApplet''. Diese kann man einfach in die Online-IDE übernehmen und muss sie nur noch mit einem Einzeiler-Hauptprogramm vor der Klassendefinition ergänzen, siehe das folgende Beispiel:
 +<HTML>
 +
 +<div class="java-online" style="height: 500px; width: 100%" data-java-online="{'withBottomPanel': false, 'id': 'ProcessingAnimation1'}">
 +
 +<script type="text/plain" title="Animation1.java">
 +new AnimationDemo().main();
 +
 +class AnimationDemo extends PApplet {
 +   
 +   float t = 0;
 +
 +   public void settings() {
 +      createCanvas(1000, 1000);
 +      fill(150, 150, 150, 120);
 +      strokeWeight(20);
 +   }
 +
 +   public void draw() { 
 +      background(20);
 +      
 +      t += 0.04;
 +      float r = 300;
 +
 +      for(int i = 0; i < 10; i++) {
 +      
 +         float t1 = t + i * 0.4;
 +         
 +         stroke(80, 80, 200);
 +         float mx = 500 + r * cos(t1);
 +         float my = 600 + r * sin(t1); 
 +         circle(mx, my, 150 * sin(t1 * 0.7));
 +         
 +         t1 += 3.1;
 +         stroke(200, 80, 80);
 +         mx = 500 + r * cos(-t1);
 +         my = 400 + r * sin(-t1); 
 +   
 +         circle(mx, my, 150 * sin(t1 * 0.7));
 +         
 +      }
 +   }
 +}</script>
 +
 +</div>
 +
 +</HTML> 
 +
 +
 +===== Besondere Klassen in der Online-IDE =====
 +Da Java vor allem serverseitig verwendet wird, sind die Textein und -ausgabe sowie die Grafikprogrammierung in der Java Standard Library nicht besonders gut unterstützt. Daher hat die Online-IDE dafür eigene Klassen, die es Schüler/innen besonders einfach machen:
 +
 +  * [[api:documentation:ein_ausgabe:start|Texteingabe und Textausgabe]]
 +  * [[api:documentation:grafik:start|Klassen zur Grafikausgabe]]
 +  * [[api:documentation:spiele:start|Spieleprogrammierung mit der Online-IDE]]
 +  * [[api:documentation:robot:start|Die Klasse Robot (ähnlich zu Robot Karol)]]
 +  * [[api:documentation:netzwerk:start|Netzwerkprogrammierung/Netzwerkspiele]]
 +  * [[api:documentation:database:start|Datenbankverbindung zur SQL-IDE hin]]
 +  * [[api:documentation:spiele:sound|Soundausgabe]]
 +  * [[api:documentation:start|Dokumentation der gesamten Klassenbibliothek]]
  
  
convert/frombluej/start.1674937887.txt.gz · Zuletzt geändert: 2023/01/28 21:31 von Martin Pabst

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki