|
|
|
|
|
|
Java |
|
|
Quellcodes |
|
|
Hier finden Sie über 400 verschiedene Java-Quellcode für die unterschiedlichen Bereiche. Der Schwerpunkt ist die graphische Programmierung, aber man findet auch Beispiele für Design Pattern, System-Einstellungen, JNI, Java mit Datenbanken, Persistente Speicherung mit DataOutputStream bzw. Serialize. Ableitung eines JTextField mit Listener, mit onChange-Event Formatierung eines String, NumberFormat JTree JDBC (Datenbanken) Export nach Excel Pipe (in einem Stream schreiben, aus einem Stream lesen) Starten eines Programms, ProzessBuilder statt Runtime.getRuntime().exec Read und Write, Einbau eines Hexeditors Plausibilitätsprüfung, sind die Daten vom Typ int, double?, mit regulären Ausdrücken RTTI, Run Time Type Indentification, zur Laufzeit werden die Methoiden einer Klassen bestimmt JUnit, Testbeispiele XML, Testbeispiele, Neu mit speichern und lesen von KLassen nach XML
Single Probleme
read_write, einfache Testbeispiele für das Schreiben und Lesen mittel DataOutputStream,. PrinStream, Zip, gz und unread read_write_Beispiel, kompexere Testbeispiele für das Schreiben und Lesen mittel DataOutputStream,. Serializer, XML
Singleton-Beispiele: singleton.zip Observer-Beispiele: observer.zip (Observer2.java verbessert)
Reguläre Ausdrücke (Regex) (Neu) xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
Alle Quellen und Dokumente: java.7z (8,6 MB, 757 Java-Dateien, Stand 26.10.2015) Alle Quellen und Dokumente: java.zip (24,4 MB, 757 Java-Dateien, Stand 26.10.2015)
Aktueller Stand 16.12.2017
|
|
|
|
|
|
|
|
|
Beispiel-Auswahl |
|
|
|
Allgemeine Basisklasse (CBasis) Stand 19.10.2010, neu inkl. Properties |
|
|
|
ClipBoard, Zwischenablage |
|
dBase (Programm zum Lesen einer dBase-Datei) |
|
Design Pattern (Singleton, Observer, Observer mit Plausibilität) |
|
|
|
Excel (nativer Export nach Excel mittels BIFF) |
|
|
|
Exception |
|
Dateien suchen (File Control Block aus Assembler) |
|
Formatierung eines String, NumberFormat, DecimalFormat |
|
|
|
JDBC (Datenbanken) |
|
Java Native Interface (Alter Stand) |
|
|
|
JUnit, Testbeispiele |
|
|
|
Klassen (Beispiele mit Klassen, Alter Stand) |
|
NumberFormat, Formatieren eines String |
|
Pipes (verwendet von zwei Threads zur Datenübertragung) |
|
Plausibilitätsprüfung (Documentlistener) |
|
|
|
Systemeigenschaften: |
|
Properties (PathSeparator, LineSeparator, Username, Userdir, Betriebssystemversion etc.) |
|
|
|
Read & Write (Einbau eines Hexeditors, Nebenprodukt) |
|
|
|
Reguläre Ausdrücke (Regex) (Neu)xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx |
|
|
|
RTTI: Run Time Type Identification und Reflection, Auslesen der Konstruktoren und Methoden aus einer Klasse |
|
|
|
Run, Starten eines externen Programms (ProcessBuilder und Runtime.getRuntime().exec) |
|
Serialize (Speichern von Objekten auf Festplatte) (Alter Stand) |
|
Sortieren mit Collections.sort, compareTo |
|
Split (Analyse eines Strings) |
|
Thread.zip (Java Threads) (Alter Stand) |
|
Timer (Timer) |
|
Vector (Klassenbeispiele mit Vector) |
|
XML (Beispiele mit XMLEncoder und Decoder) |
|
|
|
|
|
|
|
|
|
Allgemeine Basisklasse |
|
|
Basisklasse in Java mit Dialogfenster für fast alle Beispiele:
JOptionPane Umwandlung Text in Zahlen Umwandlung Zahlen in Text FileExists etc. CenterScreen Welcher Mausschalter ist gedrückt
neu inkl. Properties (PathSeparator, LineSeparator, Username, Userdir etc.) |
BspBasis.java BCBasis.java |
|
|
|
|
|
|
|
|
|
ClipBoard |
|
|
|
|
|
|
|
|
|
|
|
dBase |
|
|
Beispiele für das Einlesen von dBase-Dateien dBase Beispiele werden mitgeliefert |
dBase.zip |
|
|
|
|
|
|
|
|
|
Design Pattern |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Excel Export |
|
|
Export nach Excel mittels des Binary Interchange File Format (BIFF)
Hauptproblem: Windows speichert in little Endian Java speichert in big Endian |
Export2Excel_01.java
Bild: Export2Excel.jpg |
Export nach Excel mittels des Binary Interchange File Format (BIFF) Diese Lösung verwendet beim Double-Datentyp zwei Pipes Die erste Lösung ist natürlich besser, zeigt aber die Verwendung von Pipes Hauptproblem: Windows speichert in little Endian Java speichert in big Endian |
Export2Excel_02.java
Bild: Export2Excel.jpg |
|
|
|
|
|
|
|
|
|
Exception |
|
|
Exception mit Java Abfangen einer Exception Zwingen, dass der Aufruf einer Methode mittels eines try catch Block programmiert werden muss |
Exception.zip |
|
|
|
|
|
|
|
|
|
File: Dateien suchen |
|
|
Beispiele mit der Klasse File, um Dateien und Verzeichnisse rekursiv zu suchen |
FCB1.java FCB2.java (mit JTree, aber nicht vollständig, dann besser JExplorer ansehen) (FCB=FileControlBlock) |
|
|
|
|
|
|
|
|
|
HashMap |
|
|
|
|
|
|
|
|
|
|
|
Java Native Interface |
|
|
|
|
|
|
|
|
|
|
|
Syntax |
|
|
JComboBox cbFormat = new JComboBox(); cbFormat.addItem("0000"); // kein Array oder Vector
|
|
|
|
|
|
|
|
|
JUnit |
|
|
|
|
|
Literatur |
|
|
JUnit: Profi-Tipps Klaus Meffert Entwickler.press ISBN: 3-935042-76-0 2006
Softwaretests mit JUnit Verlag: Dpunkt Verlag; 2. Auflage, 2005 ISBN-10: 3898643255 ISBN-13: 978-3898643252
|
|
|
|
|
|
|
|
|
Klassen |
|
|
Klassenbeispiele (contr*.java, Interface, Tisch, WBaum) |
Klassen.zip |
|
|
|
|
|
|
|
|
|
NumberFormat |
|
|
Beispiele für das Formatieren von Zahlen Eintragen in einem Editor oder Ausgabe in einer Datei (etc.) Zusätzlich gibt es ein Hilfefenster, welches immer oberhalb des JFrame ist (AlwaysOnTop) setAlwaysOnTop(true); |
NumberFormatTest.java
Kurzform: import java.text.*; // NumberFormat DecimalFormat df = new DecimalFormat("##0.0"); String s = df.format(12.3456); DecimalFormat df = new DecimalFormat("00"); String s = df.format(2);
Bild: NumberFormat.jpg
|
|
|
|
Syntax der Formatierungszeichen |
|
|
Symbol und Erläuterung 0 Ist eine Ziffer, entweder eine Ziffer oder Null # Ist eine Ziffer, entweder eine Ziffer oder ein Leerzeichen . Dezimaltrenner. Trennt Vor- und Nachkommastellen. , Komma ist Wiederholungszeichen für eine Gruppe. Tausendergruppe, Milliongruppe etc. ; Trennzeichen. Links davon steht das Muster für positive, rechts das für negative Zahlen. - Das Zeichen für das negative Zahlen % Die Zahl wird mit 100 multipliziert (Prozentwert) %% Die Zahl wird mit 1000 multipliziert (Promillewert) \u00A4 Nationales Währungssymbol (€ für Deutschland) \u00A4\u00A4 Internationales Währungssymbol (EUR für Deutschland) X Alle anderen Zeichen z. B. X können ganz normal benutzt werden. ' Ausmarkieren von speziellen Symbolen im Präfix oder Suffix à la \\
Feste Beispiele: String sStr = NumberFormat.getCurrencyInstance().format( 12345.6789 ) liefert 12.345,68 €
Formatiert mit und das Ergebnis DateFormat.getDateInstance().format( new Date() ) liefert 02.09.2005
DateFormat.getTimeInstance().format( new Date() ) liefert 15:25:16
DateFormat.getDateTimeInstance().format( new Date() ) liefert 02.09.2005 15:25:16
NumberFormat.getInstance().format( 12345.6789 ) liefert 12.345,679
NumberFormat.getCurrencyInstance().format( 12345.6789 ) liefert 12.345,68 €
NumberFormat.getPercentInstance().format( 0.123 ) liefert 12 %
|
|
|
|
|
|
|
|
|
Pipe |
|
|
Beispiel mit Pipes welches zwei Threads erzeugt, die die Daten transferieren Dieses Beispiel stützt NICHT ab, das das Update der Editoren über invokeLater realisiert wurde |
Pipe_01.java
Bild: Pipe01.jpg |
Beispiel mit Pipes welches zwei Threads erzeugt, die die Daten transferieren Dieses Beispiel stützt ab, das das Update der Editoren nicht über den AWT-Thread läuft Abhilfe mit invokeLater in Pipe_01.java Mit der CheckBox kann man das Verhalten pürfen |
Pipe_02.java
Bild: Pipe02.jpg |
|
|
|
|
|
|
|
|
|
Plausibilitätsprüfung |
|
|
Beispiele für die Anwendung von Plausibilitätsprüfungen in Java: |
Plausi.zip (alle Beispiele) |
Beispiele für die Anwendung von Plausibilitätsprüfungen in Java: Plausi1.java: einfache Plausibilitätsprüfung mit try Exception |
Plausi1.java |
Beispiele für die Anwendung von Plausibilitätsprüfungen in Java: Plausi2.java: einfache Plausibilitätsprüfung mit Basis-Klasse (Methode IVal) |
Plausi2.java |
Beispiele für die Anwendung von Plausibilitätsprüfungen in Java: Plausi3.java: verwendet ein PlainDocument mit IVal zum Testen (integer) |
Plausi3.java |
Beispiele für die Anwendung von Plausibilitätsprüfungen in Java: Plausi4.java: verwendet ein PlainDocument mit DVal zum Testen |
Plausi4.java |
Beispiele für die Anwendung von Plausibilitätsprüfungen in Java: Plausi5.java: Zusätzlich wird bei jedem Tastendruck abgeprüft, ob das Ergebnis eine double-Zahl ist Buchstaben, Sonderzeichen werden NICHT in den Editor eingetragen Benutzt ein PlainDocument diese Datei ist die einfachere Variante von JTextFieldIntDocListenerTest4.java |
Plausi5.java |
Beispiel eines Dialogs mit einer Methode zum Abprüfen der Werte |
Plausi6.java
Beispieldateien: plausi_std.zip |
Beispiel eines Dialogs mit einer Methode zum Abprüfen der Werte Hier werden aber die Überprüfungen in der jeweiligen Klasse durchgeführt Ein Rückgabewert "false" zeigt an, dass die Eingabe falsch ist |
Plausi7.java
Beispieldateien: plausi_std.zip |
Beispiel eines Dialogs mit einer Methode zum Abprüfen der Werte Es wird dazu mit der Pattern-Klasse gearbeitet (Reguläre Ausdrücke) import java.util.regex.Matcher; import java.util.regex.Pattern; |
Plausi8.java
Beispieldateien: plausi_std.zip |
|
|
|
|
|
|
|
|
|
Properties |
|
|
|
|
|
|
|
|
|
|
|
Read & Write |
|
|
Beispiele zum Lesen und Schreiben von Daten in eine Datei ASCII Binär int double und String |
ReadWrite.zip (Alle Beispiele) Stand 24.03.2013 |
Einlesen einer ASCII-Datei, Verwendet die neue Methode LineNumberReader Abbruch mit der Methode din.ready() |
ReadASCII01.java |
Einlesen einer ASCII-Datei, Verwendet die Methode read, Einlesen in einem Block. Nur bei kleinen Dateien sinnvoll |
ReadASCII02.java |
Einlesen einer ASCII-Datei, Verwendet die Methode read, Einlesen in einem Block (DataInputStream) Nur bei kleinen Dateien sinnvoll |
ReadASCII03.java |
Einlesen aus einer HTML-Datei kann als Basis diene, so überprüfen, ob eine neue Version exitsiert |
ReadASCII04.java |
Beispiel für die Ausgabe mittels eines PrintStreams Die Daten werden immer in ASCII-Zeichen übersetzt und in die Datei geschrieben Kann dann mit jedem ASCII-Editor geoeffnet werden, Notepad |
WriteASCII01.java |
Beispiel für die Ausgabe mittels eines PrintStreams Die Daten werden immer in ASCII-Zeichen übersetzt und in die Datei geschrieben Kann dann mit jedem ASCII-Editor geoeffnet werden, Notepad Beschleunigung mittels BufferedOutputStream |
WriteASCII02.java |
Ausgabe von int, double, float Werten in eine binäre Datei Einlesen der Binär-Datei |
Readwrite_int_double_1.java |
Ausgabe eines Strings in eine binäre Datei Einlesen der Binär-Datei |
Readwrite_int_double_2.java |
Schreiben einer Instanz in eine Binärdatei Abstrakte Klasse, Line und Rectangle Mit Versionsnunmmer typ wird mitgespeichert, aber Container.load gelesen |
Readwrite_int_double_3.java |
Schreiben einer Instanz in eine Binärdatei Abstrakte Klasse, Line und Rectangle Mit Versionsnunmmer typ wird mitgespeichert. In Container.load wird gelesen, aber zurückgespeichert (unread der Klasse PushbackInputStream) unread geht aber nur mit einem Byte |
Readwrite_int_double_4.java |
Ausgabe mit int, double, float Werten in eine binäre Datei |
write3.java |
Ein- und Auslesen eienr binären Datei Strings werden mitttels CDataOutputStream ausgegeben Strings werden mitttels CDataInputStream eingegelesen besser wäre String mittels writeUTF zu speichern besser wäre String mittels readUTF zu lesen
Anzeige der Daten mittels eines Hexeditors |
readwriteStr1.java
Bild: readwriteStr1.jpg |
Ein- und Auslesen eienr binären Datei Strings werden mitttels writeUTF ausgegeben Strings werden mitttels readUTF eingelesen
Anzeige der Daten mittels eines Hexeditors |
readwriteStr2.java
Bild: readwriteStr2.jpg |
Beispiel mit einfacher GUI Einlesen und schreiben in BINÄR-Datei schreiben von int, long, chars, double |
readwriteStr3.java
Bild: readwriteStr3.jpg |
Programm testet die zeitlichen Unterschiede zwischen binär- und ASCII-Speicherung |
IOtest.java |
Schreiben einer Datei in das gz_format (GZIPOutputStream) |
Write_gz.java |
Lesen einerDatei im gz_format (entzippen) (GZIPImputStream) |
Read_gz.java |
Schreiben und Lesen einer Datei in das zip_format. Das zip-Format ist aber eigenständig!! DeflaterOutputStream |
Write_zip.java |
|
|
|
|
|
|
|
|
|
Run Process |
|
|
Ruft ein Programm mittels Runtime.getRuntime().exec auf optional kann auch gewartet werden |
Run01.java
Bild: Run01.jpg |
Ruft ein Programm mittels ProcessBuilder auf optional kann auch gewartet werden gegegenueber Runtime.getRuntime().exec kann man hier auch ein Startverzeichnis angeben Das Startverzeichnis wird über die JList ausgewählt (nur Root-Verzeichnisse funktionieren mit Notepad) |
Run02.java
Bild: Run02.jpg |
|
|
|
|
|
|
|
|
|
Read Write mit Klassen |
|
|
klassen_read_write1.java Schreibt und lädt Klassen mittel DataOutputStream Verwendet MagicNumber und Version schreiben und lesen von CAuto Format binaer, mittel DataOutputStream |
klassen_read_write1.java |
klassen_read_write2.java schreiben und lesen von CAuto Format binaer, mittel Serializer schreiben und lesen von CAutos (Liste) Format binaer, mittel Serializer |
klassen_read_write2.java |
klassen_read_write3.java schreiben und lesen von CAuto, CSchiffe, CFlugzeuge Format binaer, mittel Serializer (Liste lokal) |
klassen_read_write3.java |
klassen_read_write4.java schreiben und lesen von CAuto, CSchiffe, CFlugzeuge Format binaer, mittel Serializer (Liste als separate Klasse) |
klassen_read_write4.java |
klassen_read_write5.java schreiben und lesen von CAuto Format XML, mittel xml.bind.annotation das Root bekommt ein Element vor der Klassendefintion alle Klassen muessen einen Default-Kontruktor haben !!!!!!!!!!!!! es müssen alle get und set-Methoden implementiert werden !!!!!!!! schreiben und lesen von CAutos (Garage) Format XML, mittel xml.bind.annotation |
klassen_read_write5.java (XML) |
|
|
|
|
|
|
|
|
|
Reguläre Ausdrücke (Regex) |
|
|
Reguläre Ausdrücke testen Regex with Strings |
import java.util.regex.Matcher; import java.util.regex.Pattern;
try { __String maske = "[A-Z][a-z]{1,}"; __String text = "Anton"; __// if ( Pattern.matches( maske, text) ) // alternative __if (text.matches(maske)) ____// okay __else ___// Error __} catch (Exception e ) { __System.err.println(e.toString()); } |
Reguläre Ausdrücke testen Regex with Strings Samples with pattern / matches |
Regex.txt
Bilder: regex1.png regex2.png |
|
|
|
|
|
|
|
|
|
Run Time Type Identification |
|
|
RTTI: Run Time Type Identification und Reflection Auslesen der Informationen aus einer Klasse (Methoden etc.) |
rtti.zip (Alle Beispiele) |
rtti01.java: Ausgabe der Attribute und Methoden von MyJLabel Hier nur die Methoden von MyJLabel |
rtti01.java
Bild: rtti01.jpg |
rtti02.java: Ausgabe der Attribute und Methoden von MyJLabel Hier alle die Methoden von MyJLabel bis Object |
rtti02.java
Bild: rtti02.jpg |
rtti03.java: Hier alle die Methoden von MyJLabel bis Object Man kann nun verschiedene Klassen auswählen |
rtti03.java
Bild: rtti03.jpg |
rtti04.java: Hier alle die Methoden von MyJLabel bis Object Man kann nun verschiedene Klassen auswählen hier wird ein Object mitttels ClassFor erzeugt
hier wird ein Objekt mittels String erzeugt und dann eine Mtehode "setMatrnr" aufgerufen. Problem: Man kennt die Methode nicht. Funktioniert aber trotzdem |
rtti04.java
Bild: rtti04a.jpg Bild: rtti04b.jpg Bild: rtti04c.jpg |
|
|
|
Klassen erzeugen |
|
|
Beispiel um ein Objekt zu erzeugen und eine Methode aufzurufen:
private test() { Class c = null; Object obj; Method[] m; // Array der Methoden
try { c = Class.forName( sClassname ); obj = c.newInstance(); // Erzeugen einer Instanz der Klasse m = c.getMethods(); // Liefert alle Methoden for (int i=0; i<m.length; i++) { String s1 = m[i].toString(); // aktueller Methodenname if ( s1.indexOf("setName")>=0 ) { // Methode der Oberklasse nun aufrufen Object args[] = { new String("Meier") }; // Parameter // Methode ausführen am Objekt obj m[i].invoke(obj, args ); } } // for } catch ( ClassNotFoundException e) { System.out.println("Error4"); } }
|
|
|
|
|
|
|
|
|
Serialize |
|
|
|
|
|
Serialize |
|
|
|
|
|
|
|
|
|
|
|
Single Probleme |
|
|
Das Beispiel zeigt die Probmele beri der Verwendung von float resp. single 1) Ist 0.1+0.1+0.1=0.3 2) Wertetabelle von 0 bis 2.0 in 0.1 Schritten 3) GIS Berechnung mittels Zwischenwerten |
Single_probleme.java
Bild: Single_probleme.jpg |
|
|
|
|
|
|
|
|
|
Sortieren |
|
|
JFrame mit Editor zeigt, wie man mit Collections.sort automatisch sortieren Reihenfolge ändernbar |
sort1.java |
|
|
|
|
|
|
|
|
|
split: Stringanalyse |
|
|
|
|
|
|
|
|
|
|
|
Timer |
|
|
Beispiele für die Anwendung von Timern (Animator) in Java |
Timer, der einfach mit Syso hochzählt Timer1.java
Timer, der ein JLabel hochzählt Timer2.java |
|
|
|
|
|
|
|
|
|
Vector |
|
|
Vector1 Einfache Klasse wird in ein Vector eingefügt Typisierter Vector |
Vector01.java
Bild: Vector01.jpg |
Vector2 Komplexe Klasse wird in ein Vector eingefügt und ausgegeben verwendet Singleton Pattern CPrintStream p = CPrintStream.getInstance(); |
Vector02.java
Bild: Vector02.jpg |
|
|
|
Vector-Iterator |
|
|
CKlasse kl; for (int i=0; i<myVector.size(); i++) { kl = myVector.elementAt(i); kl.print(); }
// neuer Iterator System.out.println("\nNeuer Vector"); for (CKlasse kl2:myVector) { kl2.print(); }
|
|
|
|
|
|
|
|
|
XML und Java |
|
|
XML1 Lädt eine beliebige XML-Datei |
xml1.zip
Bild: xml1.jpg |
XML2 Beispiel aus Serialize Klasse Person und Gehalt Gespeichert in einer XML-Datei Laden aus der Datei
Wichtig: Die Klassen dürfen nicht in einer Datei sein! |
xml2.zip
Bild: xml2.jpg |
XML3 Beispiel aus Serialize Klasse Person und Gehalt Gespeichert in einer XML-Datei Laden aus der Datei
Wichtig: Die Klassen dürfen nicht in einer Datei sein! |
xml3.zip
xml3.java Bild: xml3.jpg |
klassen_read_write5.java schreiben und lesen von CAuto Format XML, mittel xml.bind.annotation das Root bekommt ein Element vor der Klassendefintion alle Klassen muessen einen Default-Kontruktor haben !!!!!!!!!!!!! es müssen alle get und set-Methoden implementiert werden !!!!!!!! schreiben und lesen von CAutos (Garage) Format XML, mittel xml.bind.annotation |
xml4.java (XML) xml4.zip (XML) Bild: xml4a.jpg Bild: xml4b.jpg |
|
Javadatei: ReadXML.java Als Textdatei: ReadXML.txt
Beispieldatei: Autovermietung.xml Autovermietung.xsd Als Textdatei: Autovermietungxml.txt Autovermietungxsd.txt |
|
|
|
Person2.xml |
|
|
<?xml version="1.0" encoding="UTF-8"?> <java version="1.6.0_11" class="java.beans.XMLDecoder"> <string>Hallo</string> <object class="java.util.Date"> <long>1292432430578</long> </object> <object class="xml2.Person"> <void property="betrag"> <double>1234.0</double> </void> <void property="firstname"> <string>Fred</string> </void> <void property="lastname"> <string>Weasley</string> </void> <void property="password"> <string>secret</string> </void> </object> </java>
|
|
|
|
|
|
|
|
|
Java mit einfachen Dialogen |
|
|
|
|
|