Sie sind hier: Java (Swing)
Zurück zu: Oberflächen
Allgemein:
Vorlesungen
Labore
Sinnvolle Programme
Lineare Regression
GUI-Entwurfsarbeit
Single-Format
Design Pattern-Termine
Observer1
Bsp2
Json-Array
Json-Dialogelemente
Webtechnologien
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
Swing mit Null-Layout
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
Action-Listener (5 Beispiele)
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
Java Paint
Bitmap Programm, Gezeichnet werden Linen, Kreise und Rechtecke durch Aufziehen der Maus
Hexeditor
Hexeditor mit Register und suchen von Dateien inkl. Preview
Die Bytes werden mit drawString gezeichnet
Noch ein Viewer
Steuerungsbehälter
Mit einem Ventil kann ein Behälter gefüllt werden
Drei Ventile entleeren den Behälter
Abflussmenge kann individuell gesteuert werden
Geregelt werden die Befehle mittels AND / ORJSplitPane
Bitte beachten Sie auch den kompletten Quellcode des JExplorers (zu finden in Java-Programme)
Bitte beachten Sie meine JvEdit-Umgebung, damit lassen sich alle Beispiele direkt mit einem Doppelklick ausführen.
Einfach JvEdit mit der Erweiterung java verknüpfen.
Singleton-Beispiele: singleton.zip
Observer-Beispiele: observer.zip (Observer2.java verbessert)
MDI (Multi-Document-Interface mit JInternalFrame)
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 22.12.2021
Beschreibung | Download |
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 |
Beschreibung | Download |
Beispiele, wie man ein Klick-Event mit einem oder mehreren Schalter verbindet |
Action.7z Action1.java Action2.java Action3.java Action4.java Action5.java |
Beschreibung | Download |
Grafikbeispiele | grafikbeispiele (Stand 04.10.2010) |
Bildverarbeitung Grafik2D |
Grafik2D.zip (Stand 04.10.2010) |
Beispiele mit Bilder Memory-Varianten |
Bilder.zip |
Beschreibung | Download |
Border-Beispiel Rahmen um GUI-Elemente |
Border01.java |
Beschreibung | Download |
Programm zum Kopieren und Einfügen aus der Zwischenablage |
Clipboard01.java Clipboard02.java |
Beschreibung | Download |
Beispiele für das Einlesen von dBase-Dateien dBase Beispiele werden mitgeliefert |
dBase.zip |
Beschreibung | Download |
Singleton Pattern mit Java |
singleton.zip Singleton.pdf Beispiele: Singleton1.java (nicht Threadsicher) Singleton2.java (nicht Threadsicher) Singleton3.java (nicht Threadsicher) Singleton4.java (nicht Threadsicher) Singleton5.java (Threadsicher) Singleton6.java (Threadsicher mit JInternalFrame) Singleton_enum.java (Threadsicher mit enum) Singleton_extends.java (abgeleitete Singleton) |
Observer |
observer.zip observer.pdf Beispiele: Observer1.java mit JTextFieldDocListener: Observe2.java (ein Textfeld) Observer3.java (zwei Textfelder) Observer4.java (ein JTextArea) |
Beschreibung | Download |
Drag & Drop |
Drag & Drop_1.java (nur eine Richtung) Drag & Drop_2.java (beide Richtung) Drag & Drop_3.java (Verwendet setDragEnabled) Drag & Drop_4.java (Verwendet setDragEnabled) |
Beschreibung | Download |
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 |
Beschreibung | Download |
Exception mit Java Abfangen einer Exception Zwingen, dass der Aufruf einer Methode mittels eines try catch Block programmiert werden muss |
Exception.zip |
Beschreibung | Download |
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 = File Control Block |
setzen des aktuellen Verzeichnisses mit Hilfe des Programmpfades:
jFileChooser1.setCurrentDirectory( new File( (String) System.getProperties().get("user.dir") ) );
Beschreibung | Download |
Grafikbeispiele |
grafikbeispiele Neu: drawString, auch mit Attributen Beispiel: String03.jpg |
Bildverarbeitung Grafik2D |
Grafik2D.zip |
Beispiele mit Bilder Memory-Varianten |
Bilder.zip |
Zeichnen eines vertikalen Strings |
Graphics2D g2d = (Graphics2D)g; g2d.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON); AffineTransform at = new AffineTransform(); int x=50; int y=100; at.setToRotation( Math.toRadians(-90), x,y ); // theta x y g2d.setTransform(at); g2d.drawString("Name", x,y); |
Beschreibung | Download |
Hashmap |
hashmap1.java hashmap2.java hashmap3.java |
Beschreibung | Download |
Hexeditor mit Register Suchen von Dateien inkl. Preview Suchfenster mit JSplitter Die Bytes werden mit drawString gezeichnet Export nach Excel mittels BIFF |
Hexeditor.7z 1. Preview-Bild 2. Preview-Bild |
Beschreibung | Download |
Java Native Interface | Beispiele und Dokumentation |
Beschreibung | Download |
Beispiele mit JButton Laden von Bildern in JButton MouseEnter, MouseExit |
JButton.zip JButton.pdf (Beispiele als PDF) |
Beschreibung | Download |
Beispiele für Dialogfenster mit JCheckBox |
CheckBox01.java // Auslesen des Wertes (isSelected) // OnChange-Event für die Checkboxen |
Beschreibung | Download |
Beispiele für Dialogfenster mit einer JComboBox |
ComboBox.pdf Beispiel 1: Eine ComboBox Beispiel 2: Zwei ComboBoxen, mit Update beim Auswahl der linken ComboBox combo.setEditable(false); combo.setSelectedIndex(-1); // keine Markierung |
Benutzt ein ListModel als Vector |
Beispiel 3: Zwei ComboBoxen, mit Update beim Auswahl der linken ComboBox, class myVector extends AbstractListModel implements ComboBoxModel { |
JComboBox cbFormat = new JComboBox();
cbFormat.addItem("0000"); // kein Array oder Vector
Beschreibung | Download |
Beispiele mit GUI Kombinationen mit Textfeldern, CheckBox, Radiobutton Rahmen um GUI-Elemente |
GUI.zip GUI.pdf GUI_01: Editor mit TextField GUI_02: JFrame mit RadioButton, CheckBox, Textfield GUI_03: Beispiel GUI_02 mit Editor, im Editor werden die Einträge verwaltet GUI_04: Beispiel GUI_02 mit Liste, in der Liste werden die Einträge verwaltet GUI_05: Beispiel GUI_02 mit Tabelle, in der Tabelle werden die Einträge verwaltet GUI_06: Beispiel GUI_02 mit Tabelle, ComboBox als Spalteneditoren GUI_07: JSpinnervarianten, mit Datum GUI_08: ProgressBar, Slider, Threads GUI_09: Beispiel für die Verwendung von Border mit Eingabezeilen |
Beschreibung | Download |
einfaches Dialogbeispiel Ein JDialog verwendet man, wenn man modale Eingabe benötigt. Das heisst, der Benutzer kann nur den aktuellen Dialog verwenden. |
Dialog1.java |
Ein JDialog verwendet man, wenn man modale Eingabe benötigt.
Das heisst, der Benutzer kann nur den aktuellen Dialog verwenden. Diese Beispiel zeigt eine JTable. Mit einem Doppelklick wird ein JDialog aufgerufen. Tabelle mit sortieren, compare Routine und Doppelklick mit JDialog |
Tabelle20.java |
Beschreibung | Download |
Überwachen des Schließens eines JInternalframes Closing a JInternalframes |
closing_JInternalFrame |
Beschreibung | Download |
Beispiele für Dialogfenster mit verschiedenen JList |
JList.zip Liste.pdf jlist2.setSelectionMode(ListSelectionModel.MULTIPLE_INTERVAL_SELECTION); /* SINGLE_SELECTION SINGLE_INTERVAL_SELECTION MULTIPLE_INTERVAL_SELECTION */ |
Beispiel einer JList mit einer Klasse Einfügen, Löschen, Bearbeiten |
JListe06.java |
Beschreibung | Download |
Beispiele für Dialogfenster mit JRadioButton |
RadioButton.zip RadioButton.pdf |
Einzelne Beispiele |
RadioButton05.java fertiges Beispiel ohne Array, Vorschau RadioButton06.java fertiges Beispiel mit Array, Vorschau |
Beschreibung | Download |
Beispiele für die Anwendung von TabbedPane | JTabbed Pane.zip |
Erstellen von TabbedPane |
JPanel panel; int n = jTabbedPane1.getTabCount(); for (int i=0; i<4; i++) { panel = new JPanel(); jTabbedPane1.add(i.toString(), panel); } |
Holen der TabbedPane |
JPanel panel; int n = jTabbedPane1.getTabCount(); for (int j=0; j<n; j++) { panel = (JPanel) jTabbedPane1.getComponentAt(j); panel.setBackground(Color.RED); } |
Beschreibung | Download |
Beispiele für die Anwendung von Tabellen |
Tabellenbeispiele.zip Tabellen.pdf |
Beispiel einer JTable mit einer Klasse Doppelklick erzeugt ein JDialog zum Ändern der Daten |
Tabelle08.java Bild des Beispiels |
Beispiel mit einer Tabelle Sortieren Doppelklick mit JDialog |
Einfache Sortierbeispiele table.setAutoCreateRowSorter(true); table.setAutoResizeMode(JTable.AUTO_RESIZE_OFF); JComboBox comboBox = new JComboBox( items ); TableColumn colorColumn = table.getColumn("Favorite Color"); // Eine Combobox dient als Editor für die Spalte "Favorite Color" colorColumn.setCellEditor( new DefaultCellEditor(comboBox) ); // Setzen eines Hintergrunds und Tooltipp für die Farbspalte DefaultTableCellRenderer colorColumnRenderer = new DefaultTableCellRenderer(); colorColumnRenderer.setBackground(Color.cyan); colorColumnRenderer.setToolTipText("Click for combo box"); colorColumn.setCellRenderer(colorColumnRenderer); |
Tabelle mit einer Klasse manuelle Sortierung und automatische Sortierung Doppelklick liefert Dialogfenster Problem der internen Sortierung mit Dialogfenster gelöst |
TabelleSortierung.java Einfacher geht es mit : table.setAutoCreateRowSorter(true); Hier wird aber nur nach einer Spalte sortiert. |
Scrollen zu einer bestimmten Zeile |
Tabelle10.java Beispiel mit Schaltern: Tabelle10.zip Bild: Tabelle10.jpg |
Spaltenbreite in JTable ColumnWidth in JTable |
Man setzt die Automatik außer Kraft uns setzt dann die Breiten table.setAutoResizeMode(JTable.AUTO_RESIZE_OFF); table.getColumnModel().getColumn(0).setPreferredWidth(45); table.getColumnModel().getColumn(1).setPreferredWidth(100); table.getColumnModel().getColumn(2).setPreferredWidth(120); int n=10; for (int col=3; col<n; col++) { _table.getColumnModel().getColumn(col).setPreferredWidth(90); } |
DefaultTableCellRenderer nnumberColumnRenderer = new DefaultTableCellRenderer();
numberColumnRenderer.setHorizontalAlignment(JLabel.CENTER); // RIGHT LEFT
// holen der Spalten
TableColumn numbersColumn = table.getColumn("Favorite Number"); // Spaltenüberschrift
// setzen der Ausrichtung
numbersColumn.setCellRenderer(numberColumnRenderer);
Beschreibung | Download |
Scrollpane Beispiel mit Editor Scrollbalken ist immer sichtbar |
Notepad.java Hat diverse Menüs Liest eine Datei ein Speichert eine Datei Hat ein Aktions-Menü scroller.setVerticalScrollBarPolicy(JScrollPane.VERTICAL_SCROLLBAR_ALWAYS); scroller.setHorizontalScrollBarPolicy(JScrollPane.HORIZONTAL_SCROLLBAR_ALWAYS); /* HORIZONTAL_SCROLLBAR_AS_NEEDED bzw. VERTICAL_SCROLLBAR_AS_NEEDED HORIZONTAL_SCROLLBAR_ALWAYS bzw. VERTICAL_SCROLLBAR_ALWAYS HORIZONTAL_SCROLLBAR_NEVER bzw. VERTICAL_SCROLLBAR_NEVER */ |
Beschreibung | Download |
ein JTextField wird mit einem Listener abgeleitet Mit BnOk_Click wird das Modify Flag abgefragt stammt aus dem Pattern_MVC3 |
JTextFieldDocListenerTest1.java Bild: JTextFieldDocListenerTest1.jpg |
ein JTextField wird mit einem Listener abgeleitet Hier wird zusätzlich das OnChange-Event benutzt Das entspricht einer Registrierung à la ActionListener Mit BnOk_Click wird das Modify Flag abgefragt stammt aus dem Pattern_MVC3 |
JTextFieldDocListenerTest2.java Bild: JTextFieldDocListenerTest2.jpg |
ein JTextField wird mit einem Listener abgeleitet Hier wird zusätzlich das OnChange-Event benutzt Das entspricht einer Registrierung à la ActionListener Mit BnOk_Click wird das Modify Flag abgefragt stammt aus dem Pattern_MVC3 Zusätzlich wird bei jedem Tastendruck abgeprüft, ob das Ergebnis eine int-Zahl ist Buchstaben, Punkte, Sonderzeichen werden NICHT in den Editor eingetragen |
JTextFieldDocListenerTest3.java Bild: JTextFieldDocListenerTest3.jpg |
ein JTextField wird mit einem Listener abgeleitet Hier wird zusätzlich das OnChange-Event benutzt Das entspricht einer Registrierung à la ActionListener Mit BnOk_Click wird das Modify Flag abgefragt stammt aus dem Pattern_MVC3 Zusätzlich wird bei jedem Tastendruck abgeprüft, ob das Ergebnis eine double-Zahl ist Buchstaben, Sonderzeichen werden NICHT in den Editor eingetragen |
JTextFieldDocListenerTest4.java Bild: JTextFieldDocListenerTest4.jpg |
Beschreibung | Download |
Beispiele mit JTree | JTree.zip (Alle Quellen) |
Einfaches Beispiel mit DefaultMutableTreeNode |
Tree02.java Tree02.jpg |
Beispiel mit DefaultMutableTreeNode mit toString Methode |
Tree06.java Tree06.jpg |
Beispiel mit DefaultMutableTreeNode CTreeNodeRec liefert Zusatzinformationen, mit toString Klick Ereignis wird abgefangen (Single bzw. Double-Click) Die KlickID ist je nach Baumstruktur unterschiedlich Einfach Äste öffnen Aufruf eines Ereignisses, MessageBox, wenn ID>2 Methode CreateAktionFromTreeNode Die Methode „CreateAktionFromTreeNode“ verweist dann auf die eigentliche Aktion |
Tree07.java Tree07.jpg Diese Variante ist als Startversion sinnvoll |
Beispiel mit DefaultMutableTreeNode CTreeNodeRec liefert Zusatzinformationen, mit toString Klick Ereignis wird abgefangen (Single bzw. Double-Click) Die KlickID ist je nach Baumstruktur unterschiedlich Einfach Äste öffnen Aufruf eines Ereignisses, MessageBox, wenn ID>2 Methode CreateAktionFromTreeNode Die Methode „CreateAktionFromTreeNode“ verweist dann auf die eigentliche Aktion Vier Schalter (Add, Remove, Add Node Clear) Mit Maus-Event aus Tree07.java AddNode fügt einen Knoten untern dem aktuellen Knoten ein |
Tree08.java Tree08.jpg |
Beispiel mit DefaultMutableTreeNode CTreeNodeRec liefert Zusatzinformationen, mit toString Klick Ereignis wird abgefangen (Single bzw. Double-Click) Die KlickID ist je nach Baumstruktur unterschiedlich Einfach Äste öffnen Aufruf eines Ereignisses, MessageBox, wenn ID>2 Methode CreateAktionFromTreeNode Die Methode „CreateAktionFromTreeNode“ verweist dann auf die eigentliche Aktion Vier Schalter (Add, Remove, Add Node Clear) Mit Maus-Event aus Tree07.java AddNode fügt einen Knoten untern dem aktuellen Knoten ein. Mit einem Doppelklick werden „Daten“ in den Editor eingetragen |
Tree09.java Tree09.jpg |
jTree1.addMouseListener(new java.awt.event.MouseAdapter() {
public void mouseClicked(MouseEvent e) {
jTree1_mouseClicked(e);
}
});void jTree1_mouseClicked(MouseEvent e) {
int selRow = jTree1.getRowForLocation(e.getX(), e.getY());
TreePath selPath = jTree1.getPathForLocation(e.getX(), e.getY());
if(selRow != -1) {
if(e.getClickCount() == 1) {
SingleClick(selRow, selPath);
}
else if(e.getClickCount() == 2) {
DoubleClick(selRow, selPath);
}
}
}
Weitere Methoden:
jTree1.setBorder(BorderFactory.createLineBorder(Color.black));
jTree1.setToolTipText("ToolTipp");
jTree1.setShowsRootHandles(true);
// Horizontale Linien
jTree1.putClientProperty("JTree.lineStyle","Horizontal");
// Mit Linien zwischen den Knoten
jTree1.putClientProperty("JTree.lineStyle","Angled");
// Alle Knoten expandieren
for (int i=0; i<jTree1.getRowCount(); i++) {
jTree1.expandRow(i);
}
Beschreibung | Download |
Testbeispiele für Java Unit, JUnit |
JUnit.zip |
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
Beschreibung | Download |
Klassenbeispiele (contr*.java, Interface, Tisch, WBaum) |
Klassen.zip |
Beschreibung | Download |
JFrame OHNE Layout | No_Layout.java |
Layout-Beispiele |
Layout.zip Layout.pdf |
Beispiele |
Mehrere Zeilen: GridBagLayout03.java Editor: GridBagLayout05.java |
optionale Ausrichtung im FlowLayout:
FlowLayout.LEFT, FlowLayout.CENTER (default), FlowLayout.RIGHT
//FlowLayout myLayout = new FlowLayout(FlowLayout.RIGHT);
Beispielbild
Beschreibung | Download |
Beispiel mit Listener für das JFrame (onClose) ActionListener für Panels KeyListener für Panels MouseListener für Panels FocusListener für Panels |
Listener_Bsp01.java Listener_Bsp02.java Listener_Bsp02.java Bild: Listener_Bsp03.jpg |
Beschreibung | Download |
MDI-Fenster mit Look & Feel (Motif, Windows) |
Look_and_Feel_01.java LooknFeel.pdf (Doku) Bilder Windows Bilder Motif Bilder Metal (Standard) |
public void MnLook_and_Feel(ActionEvent e) {
try {
if (e.getSource() == MnLook_Feel_Windows ) {
UIManager.setLookAndFeel("com.sun.java.swing.plaf.windows.WindowsLookAndFeel");
SwingUtilities.updateComponentTreeUI(this.getContentPane() );
}
if (e.getSource() == MnLook_Feel_Metal ) {
UIManager.setLookAndFeel("javax.swing.plaf.metal.MetalLookAndFeel");
SwingUtilities.updateComponentTreeUI(this.getContentPane() );
}
if (e.getSource() == MnLook_Feel_Motif ) {
UIManager.setLookAndFeel("com.sun.java.swing.plaf.motif.MotifLookAndFeel");
SwingUtilities.updateComponentTreeUI(this.getContentPane() );
}
if (e.getSource() == MnLook_Feel_Macintosh ) {
UIManager.setLookAndFeel("javax.swing.plaf.mac.MacLookAndFeel");
SwingUtilities.updateComponentTreeUI(this.getContentPane() );
}
} catch (Exception exc) {
}
Beschreibung | Download |
Beispiele mit Menüs a) einfaches Menü b) mit JToggleButton |
menu.zip |
Beschreibung | Download |
1. MDI-Beispiel |
Quellen: mdi01.java
Beschreibung: MDI-Programm mit einem einfachen Clientfenstertyp Nur der Menüeintrag „Neu“ funktioniert Bild: mdi01.jpg |
2. MDI-Beispiel |
Quellen: mdi02.java Beschreibung: MDI-Programm mit einem Clientfenster New erzeugt Fenster; erzeugt Fenster OpenDialog; SaveDialog vorhanden; FileFilter diverse Menüs; Fenster werden verschoben; Aufteilen und Cacasde Bild: mdi02.jpg |
3. MDI-Beispiel |
Quellen: mdi03.java Beschreibung: MDI-Programm mit einem Clientfenster; New erzeugt Fenster; OpenDialog, erzeugt Fenster; FileFilter diverse Menüs Fenster werden verschoben; Aufteilen und Cacasde gemeinsame Basisklasse für die JInternalFrames mdi03 noch als Parent Insgesamt stehen VIER Fenster zur Verfügung Beispiel für aktive Berechnung in einem Clientfenster Threads; Implements runnable Trotz Berechnung bleibt das Fenster änderbar Bild: mdi03.jpg |
4. MDI-Beispiel |
Quellen: mdi04.java Beschreibung: wie mdi03: Interface für die Aktionsmethode Aufrufbeispiel in Menü „cut“ Bild: mdi04.jpg |
5. MDI-Beispiel |
Quellen: mdi05.java Beschreibung: wie mdi03: Interface für die Aktionsmethode Aufrufbeispiel in Menü „cut“ Bild: mdi05.jpg |
WindowLayout: Klasse, die die JIF positioniert Klasse WindowLayout mit: Vorheriges Fenster Nächstes Fenster Aufteilen der Fenster Cacasde horizontal Aufteilung vertikale Aufteilung |
Quellen: WindowLayout.java |
Beschreibung | Download |
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 |
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 %
Beschreibung | Download |
Java Paint: Im Programm werden links die einzelnen Elemente angezeigt Rechts werden die Elemente dargestellt Unterstützt werden: Linie Kreis Rechteck Eigenschaften: Splitter Timer Aufziehen eines Grafikrechteck mit XOR-Modus Anzeige eines JDialogs Click-Event für eine JList und einen JPanel Mittels Timer blinkt das ausgewählte Element Aufruf eines JColorChooser Dieses Programm ist "Identisch" mit dem CAD-WPF-Programm |
jpaint.zip Bilder: jpaint01.png jpaint02.npg jpaint03.npg |
Beschreibung | Download |
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 |
editor1 = new JTextArea("abc\ndef");
editor2 = new JTextArea();
JSplitPane split = new JSplitPane(JSplitPane.
HORIZONTAL_SPLIT
,false, new JScrollPane(editor1), new JScrollPane(editor2) );
this.getContentPane().add( split, BorderLayout.
CENTER
);
split.setDividerLocation(350); // Width of the left textarea
add(split , BorderLayout.
CENTER
);
Beschreibung | Download |
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 |
Beschreibung | Download |
ein JTextField wird mit einem Listener abgeleitet Mit BnOk_Click wird das Modify Flag abgefragt stammt aus dem Pattern_MVC3 |
JTextFieldDocListenerTest1.java Bild: JTextFieldDocListenerTest1.jpg |
ein JTextField wird mit einem Listener abgeleitet Hier wird zusätzlich das OnChange-Event benutzt Das entspricht einer Registrierung à la ActionListener Mit BnOk_Click wird das Modify Flag abgefragt stammt aus dem Pattern_MVC3 |
JTextFieldDocListenerTest2.java Bild: JTextFieldDocListenerTest2.jpg |
ein JTextField wird mit einem Listener abgeleitet Hier wird zusätzlich das OnChange-Event benutzt Das entspricht einer Registrierung à la ActionListener Mit BnOk_Click wird das Modify Flag abgefragt stammt aus dem Pattern_MVC3 Zusätzlich wird bei jedem Tastendruck abgeprüft, ob das Ergebnis eine int-Zahl ist Buchstaben, Punkte, Sonderzeichen werden NICHT in den Editor eingetragen |
JTextFieldDocListenerTest3.java Bild: JTextFieldDocListenerTest3.jpg |
ein JTextField wird mit einem Listener abgeleitet Hier wird zusätzlich das OnChange-Event benutzt Das entspricht einer Registrierung à la ActionListener Mit BnOk_Click wird das Modify Flag abgefragt stammt aus dem Pattern_MVC3 Zusätzlich wird bei jedem Tastendruck abgeprüft, ob das Ergebnis eine double-Zahl ist Buchstaben, Sonderzeichen werden NICHT in den Editor eingetragen |
JTextFieldDocListenerTest4.java Bild: JTextFieldDocListenerTest4.jpg |
Beschreibung | Download |
Beispiel mit mehreren Popupmenüs Popupmenü mit einem Editor |
Popupmenue01.java |
Beschreibung | Download |
Basisklasse um in Java die Properties auszulesen fileSeparator, pathSeparator, lineSeparator userName, userHome, userDir getpathParam("java.io.tmpdir"); getpathParam("os.name"); getpathParam("os.version"); |
BspProperties.java CProperties.java System01.java Bild: properties.jpg |
Beschreibung | Download |
Beispiele zum Lesen und Schreiben von Daten in eine Datei ASCII Binär int double und String |
ReadWrite.zip (Alle Beispiele) |
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 |
Beschreibung | Download |
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 |
Beschreibung | Download |
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) |
Beschreibung | Download |
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 Bilder: rtti04a.jpg rtti04b.jpg rtti04c.jpg |
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");
}
}
Beschreibung | Download |
Memory Thread-Problem beim Aufdecken und Zuklappen ! Siehe // Error |
Memory.zip Bild: Memory.jpg |
MemJong |
MemJong.zip Bild: MemJong.jpg |
zeigt einen einfachen Drag´n Drop mit Vierecken, JPanels kann als Grundlage für Spiele dienen |
Game1.java Bild: Game1.jpg |
Ameise Mathematisches zelluläres Spiel |
Ameise.java Bild: Ameise.jpg |
Beschreibung | Download |
Serialize1 mit einer Klasse BnRead_Clicked BnWrite_Clicked Ausgabe in einem Editor |
Serialize1.java Bild: Serialize1.jpg |
Serialize2 mit zwei Klassen (Person Parson und Gehalt) eine Person HAT eine Gehalt BnRead_Clicked BnWrite_Clicked Ausgabe in einem Editor |
Serialize2.java Bild: Serialize2.jpg |
Serialize3 mit zwei Klassen (Person Parson und Gehalt) Verschlüsselung des Passwortes eine Person HAT eine Gehalt BnRead_Clicked BnWrite_Clicked Ausgabe in einem Editor |
Serialize3.java Bild: Serialize3.jpg |
Komplettes Beispiel mit Eingabe, Speichern und Laden |
Serialize4.java Bild: Serialize4.jpg |
Beschreibung | Download |
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 |
Beschreibung | Download |
JFrame mit Editor zeigt, wie man mit Collections.sort automatisch sortieren Reihenfolge ändernbar |
sort1.java |
Beschreibung | Download |
String analysieren Verwendet die Methode split |
analyse.java |
Beschreibung | Download |
Steuerungsbehälter Mit einem Ventil kann ein Behälter gefüllt werden Drei Ventile entleeren den Behälter Abflussmenge kann individuell gesteuert werden Geregelt werden die Befehle mittels AND / ODER |
Steuerung_behaelter1.java 1. Preview-Bild |
Beschreibung | Download |
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 |
Beschreibung | Download |
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 |
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();
}
Beschreibung | Download |
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 |
ReadXML
Lesen einer XML-Datei Validierung einer XML-Datei Parsen eines Knotens |
Javadatei: ReadXML.java Als Textdatei: ReadXML.txt Beispieldatei: Autovermietung.xml Autovermietung.xsd Als Textdatei: Autovermietungxml.txt Autovermietungxsd.txt |
<?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>
Aufgabe | Bemerkung | Link |
Aufgaben |
EinfuehrungGUI.pdf Aufgabe1.pdf Aufgabe2.pdf Aufgabe2.zip Aufgabe2.pdf |
|
Aufgabe1 Fakultät | Einfache Lösung | Aufgabe1_fak1.java |
Erweiterung: Fehlermeldungen mit einem Dialogfenster !!! Editzeile mit einem Hinweistext !! |
Aufgabe1_fak2.java | |
Erweiterung: Fehlermeldungen mit einem Dialogfenster !!! Editzeile mit einem Hinweistext !! Speicherung in eine Binär-Datei Speicherung in einer ASCII-Datei Laden aus einer binärdatei Laden aus einer ASCII-Datei |
Aufgabe1_fak3.java | |
Aufgabe1 Fibonacci | Ermittelt die Fibonacci-Zahlen | Aufgabe1_fibo.java |
Aufgabe1 Quersumme | Ermittelt die Quersumme einer Zahl | Aufgabe1_quersumme.java |
Aufgabe1 Alle drei Lösungen |
Es sind nun drei "Calc-Schalter" eingefügt. Separate Berechnung. |
Aufgabe1_alles.java |
Aufgabe2 |
Anzeige eines Startfensters Aufruf zwei Zusatzfenster |
Aufgabe2.java Student.bin Matrnr.bin |
Aufgabe2b |
Anzeige eines Startfensters Aufruf zwei Zusatzfenster Aufbau mittels einer Klasse Student SEHR KOMPLEX ! |
Aufgabe2b.java Student2.bin Matrnr2.bin |
Gehe zu: ReadXML