Java

Manfreds BLUEJ JAVA PAGE

Falls die Sie diese Seite nützlich finden, können Sie auch spenden!

WICHTIG: Alle Dateien sind am Ende dieses Dokuments direkt abrufbar!!

Buchempfehlungen:

Java lernen mit BlueJ: Eine Einführung in die objektorientierte Programmierung

Erhältlich bei Amazon

19.06.2006 Neues Projekt: Matrixstar

Für die Schule -Logik und Algorithmen- war ein Programm zu coden, welche einige Algorithmen der Graphentheorie umsetzen. Hier mein Beitrag...

Hier zum download das JAR File

02.05.2005 Neues Projekt: Zahlensystemkonverter

Nach sehr langer Pause (...die Schule...) habe ich nun wieder etwas gecodet. Einen Zahlenkonverter. Jaja, es gibt viele, aber nur wenige können auch Nachkommastellen ausrechnen... Dieser hier konvertiert Zahlen der Basis 0-36 um. Es werden bis zu 4 Kommastellen ausgegeben. Habe ihn zwar getestet, jedoch übernehme ich keine Gewähr auf richtigkeit! Zum Schluss noch, berechnet werden Zahlen bis maximal 9.999.999

Hier wird auch das TableLayout verwendet. Das komplette Projekt besteht daher aus 2 Jar-Files. Zum Download das vorhandene ZIP File downloaden und entpacken! Anschließend Zahlensystem.jar starten!

Hier zum download das ZIP File

09.02.2005 Update

07.12.2004 Neues Projekt: JMine

JMine ist ein MineSweeper Clone. Das klassische Windows Spiel habe ich nun in Java programmiert! Irgendwie halb so schlimm wie man sich das vielleicht vorstellt! Im Prinzip wurde hier nichts neues verwendet, was bei den anderen Projekten nicht schon vorgekommen wäre!

Update: Highscoreliste hinzugefügt; Bug behoben da es möglich war, dass beim erstellen der Bomben ein Feld mehrmals zufällig gewählt wurde und es so nicht so viele Bomben gab wie angenommen!

Hier gibts das JAR File

30.10.2004 Neues Projekt: JPaint

Nach kurzer Pause gings gleich weiter. Nun habe ich ein simples Zeichenprogramm programmiert. Es erlaubt Rechtecke, Ovale, Freihand, Linien und Freihand verbunden zu zeichnen. Das ganze gefüllt oder leer. Die gezeichneten Objekte werden jeweils in eine ArrayList gespeichert.

Features:

- Speichern, Laden (komplette ArrayList wird gespeichert)

- Zeichnen von Rechteck, Oval, Linie, Freihand, Freihand verbunden

- Auswahl von Hintergrund und Zeichenfarbe

- Gefüllte Objekte oder leere zeichnen

- Rückgängig Funktion um gezeichnete Objekte zu löschen.

Verwendete Methoden evtl. zum Lernen:

- JRadioButtonMenuItem, JFileChooser, JPopupMenu (auf Zeichenfläche), Menüaufruf durch Tasten, Abfrage der Maus

Hier gibts das JAR File

27.10.2004 Neues Projekt: Funktionsplotter mit Parser

Wie einige Besucher wissen, habe ich mich ja schonmal an einem Funktionsplotter versucht (siehe unten). Dieser funktionierte zwar, aber er konnte keine Funktionen einlesen. Sprich, der Parser fehlte. Ich habe nun einen neuen Anlauf gewagt, auch unter Einbringung von neu angeeignetem Wissen.

Der Plotter (einige Aufrufe auch über Menü möglich!):

Zeichnet 1-3 von Ihnen eingegebene Funktionen

'G' blendet ein Gitternetz ein/aus

Pfeiltasten scrollen den Ausschnitt

'+'/'-' zoomen

'ESC' in Ausgangszustand zurück.

Der Parser:

Kann Eingaben parsen, ABER prüft diese nicht!!

Regeln:

- keine Leerzeichen

- Anzahl von '(' und ')' müssen übereinstimmen

Unterstützte Rechenarten:

- 'sin'=Sinus - 'cos'=Cosinus - 'tan'=Tangens - 'cotan'=CoTangens - 'log'=Logarithmus - 'sqrt'=Wurzel

- '^' '+' '-' '*' */'

Rechenregeln:

'()' -> '^' -> 'sqrt' -> 'log' -> 'sin' -> 'cos' -> 'tan' -> 'cotan' -> '/' -> '*' -> '-' -> '+'

Wobei zu beachten ist, dass z.B. folgende Rechnung so gerechnet wird: 1-2+3-2 -> -1+1 -> 0

Richtig wäre die Regel, dass in der Reihenfolge des vorkommens gerechnet wird. Im Zweifelsfall also Klammern setzen!

Hier gibts das JAR File WICHTIG: Bitte JDK1.5.0 verwenden!!

7.10.2004 Neues Projekt: Adressbuch

Programmierung eines Adressbuches mit folgenden Funktionen:

Speichern, Speichern unter, Laden, CSV-Export, CSV-Import, Suchen, Ändern, Löschen, Liste anzeigen

Das Programm besteht insgesamt aus 10 Klassen. Also ersmals wirklich OOP. Die Hauptklasse GUI steuert das ganze. Zum Einsatz kommen Menüs, Buttons, FileCooser. Das Adressbuch wird als komplettes Objekt gespeichert oder geladen. Genauso wie man CSV-Dateien erstellen, ebenso importieren kann.

Der Source-Code ist im JAR-File enthalten. Zum Schluss, BlueJ Benutzer können ganz einfach die .java Dateien in ein Verzeichniss stellen und dann in BlueJ importieren.

Hier gibts das JAR File

SokobanJay war mein letztes BlueJ-Projekt, da ich ab jetzt mit Eclipse arbeiten werde! Jedoch nicht weil ich es schlecht finde (ganz im Gegenteil), sondern weil wir in der Schule nun eben mit Eclipse arbeiten werden. Diese Seite bleibt jedoch weiterhin bestehen!

6.9.2004 Neues Projekt: Sokoban Clone - SokobanJay

Sokoban kennt sicher jeder, also dieses Kistenverschieben. Anfänglich wollte ich einfach nur ein Labyrinth aus einer Datei einlesen und darstellen. Dann kam mir die Idee, dass sich ein Spieler darin bewegen können sollte. Tja und dann fehlte nicht mehr viel und SokobanJay war fertig!

Wie erwähnt, werden die Levels aus einer Textdatei eingelesen. Die Levels selbst hab ich von Internet. Diese Textdatei ist 'maze.txt' kann auch selbst editiert werden. Zum Download steht einstweil nur das JAR-File zur Verfügung.

Einziger Wermutstropfen, das Programm hat wenig mit OOP zu tun. Also besteht quasi nur aus einer einzigen Klasse. Ich werde versuchen mich jedoch nun langsam umzustellen!

Achja noch zum Spiel: Rot ist der Spieler (Steuerung mit Pfeiltasten), gelb die zu verschiebenden Fässer und blau die Zielfelder, wo die Fässer hinkommen sollen. Wenns einmal nicht mehr weitergeht, 'ESC' setzt den Level in Ausgangszustand zurück! Viel Spass!

Hier gibts das JAR File

17.8.2004 Neues Projekt: Simple Calculator

Ein ganz einfacher Rechner, der nur +-/* Rechnen kann. Ausserdem können nur 2 Zahlen berechnet werden, spätestens dann muss die '=' Taste gedrückt werden, sonst Fehler. Nach der '=' Taste kann jedoch weitergerechnet werden.

Ich wollte bei diesem Projekt eigentlich nur erstmals eine eingene GUI erstellen. Der Rechner selbst war einstweil nebensächlich! Sicher nicht schlecht für jemanden um sich erstmals mit GUI zu beschäftigen. Es kann wieder ein ausführbares JAR-File erstellt werden. Oder hier zum download klicken.

Ich habe noch ein kleines Tutorial zum erstellen von einem GUI zusammengeschrieben. Vielleicht hilfts dem ein oder anderen!

Java GUI Tutorial

21.6.2004 Neues Projekt: TIC TAC TOE

Wiedermal ein kleines Game. Tic Tac Toe, jedem bekannt in Java implementiert! Habe nun einen Computergegner erstellt. Man kann 3 Level auswählen (Level 1=zufällig, Level 2=angriff+verteidigung, Level 3=angriff, verteidigung und ziel verfolgen 2 steine nebeneinander zu bekommen).

Die Computer Methode ist ziemlich verwirrend, naja hab sowas auch zum ersten mal gemacht! Die Klasse Canvas wird wieder verwendet.

Es kann wieder ein ausführbares JAR-File erstellt werden.

DOWNLOAD

16.6.2004 Neues Projekt: Komplexe Zahlen

Kurz vor der erholsamen Sommerpause habe ich noch einmal etwas zusammengecodet! Das Programm führt Addition, Subtraktion, Division und Multiplikation mit 2 Komplexen Zahlen durch und zeigt dannach die Ergebnisse sowie die zwei ursprünglichen Zahlen auf der Gaußschen Zahlenebene an. Des weiteren werden alle komplexen Zahlen auch in Polarkoordinaten umgerechnet!

Dieses Programm kann aus Bluej auch als JAR-File exportiert und dannach per Doppelklick ausgeführt werden! Beim exportieren die Klasse 'Komplex' als ausführbare auswählen!

DOWNLOAD

14.4.2004 Neues Projekt: Invader´s

So, nun habe ich mein erstes Java-Spiel programmiert! Es ist eine Abwandlung vom Projekt "Wurf". Auf dem Spielfeld wird an einem zufälligen Platz ein Kreis gezeichnet. Diesen gilt es mit einem kleinen "Ball" der von rechts unten abgefeuert wird zu treffen. Wie der Ball fliegt, setzt mann vorher durch Eingabe von Geschwindigkeit und Winkel fest!

Während des Fluges wird geprüft ob der Ball das Ziel getroffen hat, also in seinem "Gebiet" ist. Hierfür wird quasi ein Rechteck über den Kreis gespannt und diese Position abgefragt. Dadurch ist die Trefferermittlung natürlich etwas ungenau, da Quadrat mehr Fläche hat als der Kreis, aber naja wir wollen nicht so kleinlich sein...

Am Ende wird dann noch die Anzahl der benötigten Versuche ausgegeben!

Zwar nicht wirklich berauschend, aber immerhin ein Anfang...

DOWNLOAD

4.3.2004 Neues Projekt: Uhr

Eine Uhr wird angezeigt und die aktuelle Systemzeit dargestellt. Die Anzeigedauer in Sekunden wird im Konstruktor übergeben genauso wie die Grösse des Fensters für die Uhr (Die Uhr wird dadurch auch grösser bzw. kleiner)

Das Projekt ist sicher kein Beispiel für effiziente Programmierung, es ist sicher teilweise optimierungsbedürftig..

Der Kreis der Uhr wird mittels der Winkelfunktionen gezeichnet.

Für die Zeigerstellungen wird ebenfalls die Winkelfunktion (Startpunkt=die Mitte, Endpunkt X ist das Ergebniss aus cos(Alpha)*hypotenuse, Endpunkt Y = sin(Alpha)*hypotenuse, wobei die Hypotenuse der Radius(=Zeiger) ist. Somit kommt man auf den Endpunkt des Zeigers (naja wenn nicht ganz klar nachlesen bei www.mathe-online.at unter Winkelfuntion) benutzt und für jede Minute das Ergebniss in ein Array geschrieben um die Berechnung nicht bei Laufzeit durchführen zu müssen.

DOWNLOAD

11.2.2004 Neues Projekt: Zahlensysteme

Dieses Projekt stellt 4 Klassen zur Verfügung.

Bin2Dez wandelt eine Binärzahl in Dezimalzahl um und liefert den entsprechenden Returnwert als int.

Dez2Bin wandelt Dezimal in Binär und liefert Returnwert als String.

Dez2Hex wandelt Dezimal in Hexadezimal und liefert String.

Hex2Dez wandelt Hexadezimal in Dezimal und liefert int.

Demnächst werde ich evtl. eine Klasse schreiben welche von System n auf System m umwandelt.

Klassen Dez2Hex und Dez2Bin wurden so geändert, dass anstelle von String die Klasse StringBuffer verwendet wird!

Vorteile: Schnellerer Code, Weniger Code benötigt (z.B. umdrehen des Strings durch reverse Methode), Länge wird automatisch erweitert, war zuvor nicht so, da das Array fix mit einer grösse Hinterlegt wurde.

DOWNLOAD

10.2.2004 Neues Projekt: Funktionsplotter

Um Funktionen besser zu verstehen können Funktionsplotter sehr hilfreich sein. Dieser hier ist eher nur ein ganz simpler mit welchem

"nur" Funktionen a´la x^n oder welche nach der Formel f(x)=k*x+d dargestellt werden können. Ich wollte zwar erreichen, dass eine

beliebige Funktion eingegeben werden kann, aber ich scheiterete an dem Teil, an dem das Programm den eingegebenen Funktionsstring

zerlegen und beurteilen muss. Naja vielleicht gibts den irgendwann mal.... ;-)

DOWNLOAD

10.2.2004 Neues Projekt: Wurfparabel:

Nach dem recht spannenden Physikunterricht versuchte ich die gelernte Formel in das Programm umzusetzen

was eigentlich nicht wirklich ein Problem darstellte.

DOWNLOAD

Neues Projekt: Sortieralgorithmen

BubbleSort und Quicksort werden implementiert! Dazu noch grafische Darstellung der Sortierverfahren

Klasse Canvas von Bluej.org wird ebenfalls verwendet um Fenster darzustellen

DOWNLOAD