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] – [Keine packages und keine import-statements in der Online-IDE] Martin Pabstconvert:frombluej:start [2023/01/28 23:11] – [Konvertieren von Java-Projekte (insbes. BlueJ-Projekte)] 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 kann, aber 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. Es gibt kein "Rezept", mit dem man jedes BlueJ-Projekt auf dieselbe Art und Weise in ein Online-IDE-Programm verwandeln kann, aber 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.
   * 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
 </WRAP> </WRAP>
  
Zeile 29: Zeile 35:
 **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 =====
 +Das API der Online-IDE enthält einen recht großen Teil der Java Standard Library. Eine [[ttps://www.online-ide.de/api_documentation.html|dokumentierte Übersicht über alle Klassen finden Sie hier.]] 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:
  
 +Benutzereingaben per Tastatur
 +Farbige Ausgabe mit print und println
 +Farben
 +Klassen zur Grafikausgabe und Spieleprogrammierung mit der Online-IDE
 +Soundausgabe
 +Netzwerkprogrammierung
 +Zugriff auf Datenbanken
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