Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

FAQ Session – Assignment 1

Ähnliche Präsentationen


Präsentation zum Thema: "FAQ Session – Assignment 1"—  Präsentation transkript:

1 FAQ Session – Assignment 1
FG Telekooperation Prof. Max Mühlhäuser Dirk Bradler, Julian Schröder-Bernhardi :

2 Outline Wie programmiere ich in Java plattform unabhängig
Path-Separator AWT SWING SWT :

3 Path-Separator Viele Tricks Der sichere Weg:
Der sichere Weg: Benutzen von File.separator oder File.pathSeparator wenn Strings mit Pfade erzeugt werden Und/oder File objects anstelle von Strings, wenn ein Pfad benötigt wir :

4 Path-Separator Using File.pathSeparator in Strings
String myRelativePath = "mydir" + File.pathSeparator + "myFile.txt"; A path using '/' within File is always translated correctly // in Unix remains as it is, in Windows translates to C:\mydirectory\myfile.txt File myFile = new File("/mydirectory/myfile.txt"); :

5 Path-Separator Java liefert alles was benötigt wird
System.getProperty("os.name"); System.getProperty("file.separator"); System.getProperty("path.separator"); System.getProperty("line.separator"); System.getProperty("os.version"); ABER einfacher: Immer „/“ verwenden Funktioniert bei allen *NIX-Systemen + MAC Wird von Windows API unterstützt Homeverzeichnis finden mittels System.getProperty("user.home") Sowohl auf *NIX als auf Windows Systemen :

6 AWT „Abstract Window Toolkit“ Seit1995
Nur GUI Komponenten umgesetzbar, die auf allen Plattformen verfügbar sind Guter Ansatz, jedoch Nicht leistungsfähig genug Nicht wirklich ansprechend :

7 Swing Seit 1998 Früher sehr langsam Heute besser 
Implementierung in *NIX und Windows identisch Sieht seid JDK 5 sowieso besser aus  Der Standard-Stil (Look&Feel) ist immer noch häßlich :

8 Swing Java zeichnet die Komponenten selbst
Seit JDK 1.6 mit stärkerem Hardware-Support und Beschleunigung durch native Komponenten Immer noch plattformunabhängig! Swing-Komponenten werden direkt von Java gerendert Nicht von nativen Betriebssystemkomponenten abhängig Alle Swing-Komponenten auf allen Plattformen gleich Manche Swing-Anwendungen (vor allem alte) wirken betriebssystem-fremd Durch entsprechenden Pluggable Look-and-Feels kompensieren :

9 Simple „Hello World“ via Swing (Danke an Wikipedia)
import javax.swing.*; class HelloWorldSwing { public static void main(String[] args) { Runnable guiCreator = new Runnable() { public void run() { JFrame fenster = new JFrame("Hallo Welt mit Swing"); fenster.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); JLabel label = new JLabel("Hallo Welt"); fenster.getContentPane().add(label); fenster.setSize(300, 200); fenster.setVisible(true); } }; SwingUtilities.invokeLater(guiCreator); :

10 SWT „Standart Widget Toolkit“ Seit 2001
Idee: Nutzung der nativen Widget und zusätzlicher Implementierungen Funktioniert unter Windows Funktioniert unter *NIX Aber Implementierung ist nicht plattformunabhängig SWT muss auf das jeweilige OS portiert werden Lässt sich theoretisch plattformunabhängig schreiben und packen :

11 SWT Benötigte Pakete: org.eclipse.swt.*; org.eclipse.swt.widgets.*; Ein Display-Objekt repräsentiert das zugrundeliegende Windows-System: Display display = new Display(); Ein Shell-Objekt enthält die einzelnen Elemente (Widgets). Es ist vergleichbar mit dem JFrame in Swing: Shell shell = new Shell(display); :

12 Simple „Hello World“ via SWT
import org.eclipse.swt.widgets.*; import org.eclipse.swt.*; public class HelloWorld { public static void main(String[] args) { Display display = new Display(); Shell shell = new Shell(display); Label label = new Label(shell, SWT.NONE); label.setText("Hello, World!"); shell.pack(); label.pack(); shell.open(); while (!shell.isDisposed()) if (!display.readAndDispatch()) display.sleep(); display.dispose(); label.dispose(); } :

13 Fazit Swing am angenehmsten Geschwindigkeit zumindest vergleichbar
Vollständige Plattformunabhängigkeit :

14 Erinnerung Assignment sheet on the Web page of the Praktikum
Milestones: TCP client and server Simple Web server Web server improvements Important: pay attention to error-semantics, be conservative (i.e. follow the RFC) in what you send Deadline for returning: at 12:00 To be returned: Code with comments, test cases used Send at CC at :

15 Erinnerung In each assignment, return the following: Compiled JAR-File
Executable!!! Including Java source code The code should follow the coding guidelines given on the next pages Code not following the guidelines may be graded inferior compared with functionally equivalent code that does follow them Short written report What you have done, what is missing, how you implemented it Describe design choices, why you did them, etc. UML diagram is ok, if you know UML :

16 What You Need to Do (2) Test cases used
Test cases may be defined informally in the written report or formally with JUnit tests The names and Martikel numbers of all people in the group must be present in the written report and in the Subject [IPWS0809][Assignment X | Question][Group Y] Return as a zip-file by to CC: :

17 Questions? :


Herunterladen ppt "FAQ Session – Assignment 1"

Ähnliche Präsentationen


Google-Anzeigen