Jnex Einführung Präsentationsunterlagen für die Softwareentwickler Schulung Dipl. El. Ing. ETH Marcel Baumann 2003.

Slides:



Advertisements
Ähnliche Präsentationen
der Universität Oldenburg
Advertisements

der Universität Oldenburg
der Universität Oldenburg
Klassen - Verkettete Liste -
DVG Einfache Klassen Einfache Klassen. DVG Einfache Klassen 2 Strukturen Beispiel: Personendaten bestehen aus –String name –String vorname.
Ein Beispiel in Java.
PKJ 2005/1 Stefan Dissmann Vorwoche - Klasse public class Studierende { private String name, vorname, studiengang; private int matNr, semester; private.
Prof. Dr.-Ing. habil. B. Steinbach - Informatik / Softwaretechnologie und Programmierungstechnik - Institut für Informatik Verteilte Software - Java -
Praktikum Systementwicklung
Java: Programmierung grafischer Oberflächen
Java: Objektorientierte Programmierung
Java: Programmierung grafischer Oberflächen
Java: Dynamische Datentypen
Listen Richard Göbel.
Indirekte Adressierung
FH-Hof Verwaltung von Zeichenketten Richard Göbel.
Java: Referenzen und Zeichenketten
Java: Grundlagen der Objektorientierung
Ein Beispiel in Java.
Benötigte Applets Startseite: in HTML-Format Applet auf der Startseite Das Applet, das auf der Startseite geladen wird, wird die vier Buttons und die eine.
Praktikum Entwicklung und Einsatz von Geosoftware I - Sitzung 6 Model-View-Controler als Grundlage für Nutzerschnittstellen Sommersemester 2003 Lars Bernard.
Praktikum Entwicklung und Einsatz von Geosoftware I - Sitzung 7 User Interfaces in Java Sommersemester 2003 Lars Bernard.
Institut für Kartographie und Geoinformation Prof.-Dr. Lutz Plümer, Dr. Gerhard Gröger, Dipl.-Ing. Dirk Dörschlag Einführung in die Programmierung mit.
Java-Kurs - 2. Übung Entwicklungsumgebung Struktur von Programmen
Programmieren mit JAVA
PKJ 2005/1 Stefan Dissmann Zusammenfassung Bisher im Kurs erarbeitete Konzepte(1): Umgang mit einfachen Datentypen Umgang mit Feldern Umgang mit Referenzen.
1DVG3 - Paint Paint ein Zeichenprogramm. DVG3 - Paint 2 Paint – ein Zeichenprogramm.
1DVG3 - anonyme Klassen Anonyme Klassen. DVG3 - anonyme Klassen 2 Syntax new BasisKlasse(Parameterliste) { Modifikationen und Erweiterungen der Basisklasse.
DVG Kommentare1 Kommentare. DVG Kommentare 2 Kommentare Es gibt zwei Arten von Kommentaren: einzeilige Kommentare // der Kommentar geht.
DVG Einführung in Java1 Einführung in JAVA.
DVG Klassen und Objekte
DVG Einfache Klassen 1 Einfache Klassen. 2DVG Einfache KlassenStrukturen Beispiel: Personendaten bestehen aus String name String name.
DVG Kommentare 1 Kommentare. 2 Kommentare Es gibt zwei Arten von Kommentaren: einzeilige Kommentare // der Kommentar geht bis zum Ende der Zeile.
Java in 9 Folien Besser: Online-Buch Go to Java 2.
Einführung in die Programmierung Datensammlung
© 2002 Dr. Cavelius - Ley - Pohlig - Taulien Step by step zum JFrame 1 Zum JFrame Step by step by step by step by step by step by step by step by.
Bestimmung des ggT zweier Zahlen
© 2005 Pohlig GK Informatik K Zum JFrame Step by step by step by step by step by step by step by step by.
© 2006 MPohlig Grundkurs Informatik mit Java 1 JFrame-Vorlage Step by step by step by step by step by step by step by step by.
FH-Hof 1 XML-Parser Richard Göbel. FH-Hof 2 XML-Parser- DOM Object Tree Parser Objekt der Klasse 'DocumentBuilderFactory' mit 'newInstance()' erzeugen.
Seite 1 Interface - Konzept Ein Interface führt einen neuen Datentyp ein: interface Frau {... } Das Interface enthält Deklarationen ( keine Definitionen.
Sommersemester 2004 Jan Drewnak Entwicklung und Einsatz von Geosoftware I Praktikum Sitzung 7 Sitzung 7: User Interfaces in Java.
Universität zu Lübeck Institut für Informationssysteme Die Präsentationsschicht - mit Swing.
Java programmieren mit JavaKara
Erste Schritte mit Eclipse Neues Projekt erstellen (1)
AWT und JFC Abstract Windowing Toolkit
Wir bauen uns eine Webapplikation!
Java ohne Kara. Java ohne Kara Ab jetzt: Java ohne Kara Ziel: Erfahrungen sammeln mit ersten Java Programmen.
1 Sg 3 – JSP - Java Server Pages Softwareengineering Praktikum Java Server Pages Nicole Brandstätter Josef Sturm Karl Streicher.
Java: Programmierung grafischer Oberflächen
Abteilung für Telekooperation Übung Softwareentwicklung 1 für Wirtschaftsinformatik Dr. Wieland Schwinger
Einführung / Geschichte Einführung / Geschichte Motivation Motivation Beispiel Beispiel Architektur / Komponenten Architektur / Komponenten Konfiguration.
CuP - Java Elfte Vorlesung Montag, 11. November 2002.
Mahmoud Zoabi Khaled Isa
Abteilung für Telekooperation Übung Softwareentwicklung 1 für Wirtschaftsinformatik Dr. Wieland Schwinger
Vom Umgang mit Daten. public void myProgram() { int[] saeulenWerte = new int[world.getSizeX()]; for (int i = 0; i < saeulenWerte.length; i++) { saeulenWerte[i]
Dynamische Datentypen
Objektorientiertes Konstruieren
Variablenkonzept Klassisch, in Java Basistyp
Java-AG Benutzeroberflächen Juni 2001 Michael Haas.
Starten der Entwicklungsumgebung (IDE)
Lind 02/2005 Einführung in JAVA. Lind 02/2005 Beispiel: Mittelwert Es soll ein Programm erstellt werden, das den Mittelwert zweier reeller Zahlen berechnet.
Programmiervorkurs WS 2014/15 Methoden
CuP - Java Achte Vorlesung Entspricht ungefähr Kapitel 4.1 des Skriptums Montag, 28. Oktober 2002.
Informatik I : Software höhere Programmiersprachen Java Klassen: hat Methoden (Funktionen) und Daten (Variablen) es kann mehrere Klassen geben nur eine.
© 2005 Pohlig Informatik Jg. 11 mfH Michael Pohlig 1 Zum JFrame Step by step by step by step by step by step by step by step by.
Java-Kurs Übung Benutzeroberflächen und Graphik Frames (Fenster)
Institut für Kartographie und Geoinformation Prof. Dr. L. Plümer, Dipl.-Ing. D. Dörschlag, Dr. G. Gröger Einführung in die Programmierung mit Java 13.
Java Programme nur ein bisschen objektorientiert.
Grafische Benutzeroberflächen mit Swing (2) Christoph Broschinski, Alexander Sczyrba Jan Krüger
 Präsentation transkript:

jnex Einführung Präsentationsunterlagen für die Softwareentwickler Schulung Dipl. El. Ing. ETH Marcel Baumann 2003

jnex Einführung Nexirius GmbH 2 Ziele des Kurses  Erlernen des Umgangs mit den wichtigsten Klassen von jnex  Anhand einfacher Beispiele Zusammenhänge verstehen  Sinn des Frameworks verstehen  Erfolgserlebnisse provozieren

jnex Einführung Nexirius GmbH 3 Model View Controller Design Pattern (MVC)

jnex Einführung Nexirius GmbH 4 Model View Controller bei jnex DataModel Viewable SimpleModelContainerModel ArrayModelStructModel DataViewer StructViewer SimpleViewer ArrayViewer DataModelMethod ButtonViewer 0..n 1 dataModelChangeValue setValue DataModelListener

jnex Einführung Nexirius GmbH 5 Model View Controller // create a string model and initialize its value to "Hello World!" DataModel model = new StringModel("Hello World!"); // create a viewer for the model (produces a JLabel by default) DataViewer viewer = factory.createViewer(model, false); // create an editor for the same model (produces a JTextField by default) DataViewer editor = factory.createViewer(model, true); // access the Swing JComponents JComponent viewerComponent = viewer.getJComponent(); JComponent editorComponent = editor.getJComponent(); model.setText(“Test”); String value = model.getText();

jnex Einführung Nexirius GmbH 6 Das Management ViewerMap ViewerMapEntry DataModelClass ViewerCreator DataLayout DefaultViewerMap 0..n ViewerFactory Erzeugt einen passenden Editor oder Viewer eines DataModel DataViewer createViewer(DataModel)

jnex Einführung Nexirius GmbH 7 Properties (Mehrsprachigkeit) Number=Nr. LastName=Name FirstName=Vorname FirstName.tip=einer oder mehrere… Sex=Geschlecht Telephone=Telefonnummer Country=Land Department=Abteilung Birthdate=Geburtstag File=Datei Exit=Beenden Cancel=Abbrechen ABCApplication.properties

jnex Einführung Nexirius GmbH 8 Hello World! ViewerFactory factory = ViewerFactory.getDefaultInstance("HelloWorld"); DataModel model = new StringModel("Hello World!"); DataModelCommand resetCommand = new ResetCommand(); model.appendMethod(resetCommand); DataViewer viewer = factory.createViewer(model, false); DataViewer editor = factory.createViewer(model, true); DataViewer resetViewer = factory.createViewer(resetCommand, true); JComponent viewerComponent = viewer.getJComponent(); JComponent editorComponent = editor.getJComponent(); JComponent resetComponent = resetViewer.getJComponent();

jnex Einführung Nexirius GmbH 9 Verschachtelte Datenmodelle (StructModel)  Die Klasse StructModel ist ein Behälter für andere DataModel  Die Methode append(DataModel) fügt ein Member (Kind) in die Struktur ein. Kinder von Strukturen sollten immer einen eindeutigen Feldnamen haben.  Die Kinder können per Feldname ( getChild(String FieldName) ) angesprochen werden können  Grosskinder können mit getChild(„Kind;Grosskind“) erreicht werden.

jnex Einführung Nexirius GmbH 10 DataModelListener einrichten  Jedes DataModel sendet DataModelEvent s, falls sich sein Wert ändert  Die Events werden in einer verschachtelten Struktur jeweils zum Vater weitergereicht  Es gibt eine vorgefertigte Klasse DataModelAdaptor, die alle Listener Funktionen als leere Methoden enthält

jnex Einführung Nexirius GmbH 11 public class DataModelAdaptor implements DataModelEditListener { public void dataModelChangeValue(DataModelEvent event) { } public void dataModelChangeStructure(DataModelEvent event) { } public void dataModelGrabFocus(DataModelEvent event) { } public void dataModelEdit(DataModelEvent event) { }

jnex Einführung Nexirius GmbH 12 Calculator

jnex Einführung Nexirius GmbH 13 Fixe Layout Definition für Strukturen  Eine Struktur wird per default mit einem StructEditor dargestellt. Der StructEditor ist in der Lage, irgend ein StructModel so darzustellen, dass alle Felder des Models erfasst werden können.  Mit einem StructureLayoutItem kann die Position, die Grösse und das Aussehen der einzelnen Mitglieder der Struktur definiert werden.  Ein StructureLayoutItem enthält StructureFieldLayout Einträge, die mit der Methode append(DefaultLayoutItem) eingetragen werden. Jeder Eintrag erwirkt die Darstellung eines Mitglieds (Kind) des StructModel

jnex Einführung Nexirius GmbH 14 childx, y, w, h import com.nexirius.framework.layout.*; import com.nexirius.framework.dataviewer.*; public class CalculatorLayout extends StructureLayoutItem { public CalculatorLayout() { append(new StructureFieldLayout(„Operator1", 0, 0, 50, 30, null, null, false, null, null)); append(new StructureFieldLayout(„Operand1", 60, 0, 150, 30, null, null, false, null, null)); append(new StructureFieldLayout(„Operator2", 0, 40, 50, 30, null, null, false, null, null)); append(new StructureFieldLayout(„Operand2", 60, 40, 150, 30, null, null, false, null, null)); //… } Structure Layout Item

jnex Einführung Nexirius GmbH 15 int width = 300; int height = 150; int woperator = 100; int gap = 5; int woperand = width - 3 * gap - woperator; int hline = (height - 6 * gap) / 5; int x = gap; int y = gap; append(new StructureFieldLayout("Reset", x, y, woperator, hline, …)); x += woperator + gap; append(new StructureFieldLayout("Operand1", x, y, woperand, hline, …)); x = gap; y += hline + gap; append(new StructureFieldLayout("Operator1", x, y, woperator, hline, …)); x += woperator + gap; append(new StructureFieldLayout("Operand2", x, y, woperand, hline, …)); Layout Positionen und Grössen berechnen

jnex Einführung Nexirius GmbH 16 Application  Eine Applikation besteht aus einem JFrame Fenster  In diesem Fenster gibt es am oberen Rand ein Pulldown Menü und gleich darunter ein Toolbar (Symbolleiste). In der Mitte befindet sich der applikationsspezifische Hauptbereich (Main Panel) und am unteren Rand befindet sich eine Statuszeile Pulldown Menü Toolbar Main Panel Status Line

jnex Einführung Nexirius GmbH 17 Hello World Application  Definition der Methoden public HelloWorldApplication(String argv[]) { super(argv); } public DataModel getApplicationModel() { return mainModel; } public String getApplicationName() { return "HelloWorldApplication"; } public void preInit() { //prepare main model } public void init() { // create JComponents in main panel // use -> getMainPanel() // use -> getFactory() }

jnex Einführung Nexirius GmbH 18 Viewer Creator Map  Die ViewerCreatorMap verknüpft Datenmodelle mit ViewerCreator und mit DefaultLayoutItem Instanzen.  Es gibt immer die Möglichkeit für ein Model einen ViewerCreator, der Editoren erzeugt und einen ViewerCreator, der Viewer erzeugt zu registrieren. Das gleiche gilt für das zugeordnete Layout.  Die vordefinierten Modelltypen sind bereits mit ViewerCreator Instanzen verknüpft! ViewerCreatorMap map = getFactory().getViewerCreatorMap(); map.register(MainModel.class, new MainLayout(), true); map.register(MemberModel.class, new TabbedEditorCreator()); map.register(MemberModel.class, new MemberLayout(), true); map.register(PersonModel.class, new PersonLayout(), true); map.register(AddressModel.class, new AddressEditorLayout(), true); map.register(AddressModel.class, new AddressViewerLayout(), false);

jnex Einführung Nexirius GmbH 19 Array Model  Ein ArrayModel besteht aus einer beliebigen Anzahl Einträgen, wobei die Einträge vom gleichen Typ sind und per Index angesprochen werden.  Ein ArrayModel wirft ein Value Change Event, wenn sich seine Dimension ändert.  Ein ArrayModel wird per default als Tabelle dargestellt

jnex Einführung Nexirius GmbH 20 Der Ablauf eines Popup Fensters DataModel original; DataModel kopie; kopie = original.duplicate(); createViewer(kopie); original.dropData(copy.dragData()); return true; return false;