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
Nächste ÜberarbeitungBeide Seiten der Revision
convert:frombluej:start [2023/01/28 20:43] – [Grundsätzliches Vorgehen] Martin Pabstconvert:frombluej:start [2023/01/29 08:51] – [Besondere Klassen in der Online-IDE] Martin Pabst
Zeile 1: Zeile 1:
-====== Konvertieren eines BlueJ-Projekts ====== +====== Konvertieren von Java-Projekte (insbes. BlueJ-Projekte) ====== 
-<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
-  * Das Konzept des **Hauptprogramms** in der Online-IDE 
   * ''import''-Statements   * ''import''-Statements
 +  * **Hauptprogramm** anstatt manuellem Instanzieren von Objekten
   * 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 27: Zeile 41:
 Auch java-Systemklassen können einfach ohne import-Statements verwendet werden: Auch java-Systemklassen können einfach ohne import-Statements verwendet werden:
 {{ :convert:frombluej:pasted:20230128-204247.png?400 }} {{ :convert:frombluej:pasted:20230128-204247.png?400 }}
-Lösung: import-Statement einfach weglassen.+**Lösung:** import-Statement einfach weglassen. 
 + 
 +===== 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: \\  
 +{{:convert:frombluej:pasted:20230128-204628.png?300 }} 
 +{{ :convert:frombluej:pasted:20230128-204709.png?300}} 
 +<HTML> 
 +<div style="clear: both"></div> 
 +</HTML> 
 +Das ist anfangs didaktisch ganz sinnvoll, mit der Zeit aber recht anstrengend und hemmt den Entwicklungsprozess. In der Online-IDE gibt es daher die Möglichkeit, ein Hauptprogramm zu schreiben, mit dem man seine Klassen testen kann: 
 +{{ :convert:frombluej:pasted:20230128-205311.png?600 }} 
 + 
 +<WRAP center round info 80%> 
 +Für das Hauptprogramm gelten folgende Regeln: 
 +  * Grundsätzlich gelten alle Anweisungen, die außerhalb von Klassendefinitionen stehen, als Hauptprogramm. Das Hauptprogramm kann also einfach zusammen mit einer Klasse in einer Datei stehen. 
 +  * Beim Klick auf den Startbutton wird das Hauptprogramm aus einer der Dateien des Workspaces gestartet. Die Datei wird wie folgt ermittelt: 
 +    - Hat die gerade geöffnete Datei ein Hauptprogramm, so wird dieses gestartet. 
 +    - Hat sie keines, so wird das zuletzt gestartete Hauptprogramm wieder gestartet. 
 +    - Gibt es auch kein zuletzt gestartetes Hauptprogramm, so wird in allen Klassen des Workspace nach einem Hauptprogramm gesucht und das erste gefundene gestartet. 
 +Hat ein Workspace also nur ein einziges Hauptprogramm, so wird immer genau dieses gestartet. 
 +</WRAP> 
 + 
 +===== Verwendung der Graphics and Games-Bibliothek des Cornelsen-Verlages ===== 
 +{{ :convert:frombluej:pasted:20230128-212135.png?600}} 
 +Alle Klassen der Graphics and Games-Bibliothek, also die Klassen 
 +  * Zeichenfenster 
 +  * Rechteck 
 +  * Dreieck 
 +  * Kreis 
 +  * Turtle (Online-IDE: GTurtle) 
 +  * Figur 
 +  * Text (Online-IDE: GText) 
 +  * 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: 
 +{{ :convert:frombluej:pasted:20230128-212503.png?200}} 
 +  * Rechtsklick auf den Workspace -> Einstellungen 
 +  * Häkchen bei der Graphics and Games-Bibliothek setzen 
 +  * Mit Klick auf OK bestätigen. 
 +{{ :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: ==== 
 +  * [[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)]] 
 +  * [[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.txt · Zuletzt geändert: 2023/01/29 13:13 von Martin Pabst

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki