Seiten

Freitag, 25. Februar 2011

GUI Fortsetzung JAVA

Ich bin mir ziemlich sicher bereits erwähnt zu haben, dass sich die Entwicklung von Grafischen Benutzeroberflächen in Java sogar mit dem dafür vorgesehenen Equipment ( Visual Editor für eclipse) ein zeimlich schmerzhafter Prozess ist.
Gestern habe ich vier Stunden damit zugebracht mich etwas darin einzuarbeiten. Selbstverständlich ist alles Übungssache, aber der Aufbau von Frames und den darin enthaltenen Elementen könnte meiner Meinung nach kaum unintuitiver gestaltet worden sein. Selbstverständlich muss ein Frame wie ihn heute alle Windowsbenutzer kennen ( gibt es eigentlich Betriebssysteme die auf die Frame - GUI verzichten ) einige Anforderungen erfüllen:
Der Frame kann vergrößert oder verkleinert werden. Dafür muss aber vorher festgelegt sein, wie sich die einzelnen Elemente verhalten, wenn die Größe sich ändert. Dafür kann man die Elemente in Raster, sogenannte GridBacks unterteilen. Je nach Vorgabe bleiben dann Rasterelemente beim Scrollen der Größe gleich groß (  Bei Buttons , die mit Text gefüllt sind besipielsweise unverzichtbar, da man sonst den Text nichtmehr lesen kann ) oder verändern die Elemente Ihre Größe ( z.B.: Textfelder , die dann scrollbars bekommen, damit man den Text trotzdem noch lesen kann, notfalls auch Wort für Wort ).
Schwierig ist es nun dies zu berücksichtigen. Komplizierter wird das ganze nun noch, wenn man mehrere Elementträger, sogenannte JPanes in einem Frame hat. Kein Objekt kann ohne darunterliegendes JPane dargestellt, bzw. eingebaut werden und meistens ist es nötwendig mindestens zwei bis drei JPanes zu verwenden.
Für jedes dieser JPanes muss auf dem darüberliegenden Pane eine Sortierstruktur ausgewählt werden, z.B.: ausrichtung nach X-  oder Y- Koordinate. Natürlich ist es auch möglich die Rastermethode zu verwenden um die Elemente wenigstens grob in Position zu bringen.

Datenbankanbindung mit PHP Teil 2

Ok damit mache ich heute einfachmal da weiter, wo ich gestern aufgehört habe und erläutere noch mehr methoden aus dem Php standart, mit denen man viele Tolle Sachen machen kann.
Zum Beispiel die Eingangserfassung von Paketen.

Wie viele wissen befindet sich der Php-Code auf dem server und wird vor Absenden der HTML- Webseite ausgeführt und dann aus dem Code entfernt. Problematisch daran ist, dass einige Dinge nicht vor ort ( also auf dem Rechner des Benutzers) ausgeführt werden können. Da dies nicht möglich ist, muss die Website, die dem Benutzer angezeigt wird irgendwie mit dem Server kommunizieren. Dies funktionierte früher mittels der Datenübertragung aus der URL, welche einfach als Paket gekapselt durch das internet rauschte und im Anschluß vom Server und dem entsprechenden Php Code ausgewertet werden konnte. Allerdings ist diese Methode nicht besonders Sicher, da die URL auch von Dritten ausgelesen werden kann.

Die sicherere und mittlerweile fast überall verwendete variante ist eine Übergabe der Daten in einem Feld ( einem Array ) dieses erreicht den Server auf einem anderen Weg und kann nicht über den Browser ausgelesen werden.
Die Attribute zur Fortsetzung der Bearbeitung von Nutzeranfragen sind dem Programm dann zugänglich, und können ausgelesen werden. Die Bezeichnung diese Feldes ist $_POST.
Es entspricht den PHP_standarts und ist ein assoziatives Array. Die Schlüssel sind dabei die Namen ( name=""...) der Formularfelder.
Die Übergabe findet selbstverständlich erst nach absenden des Formulares ab. Hier beitet sich nun die Möglichkeit eines Selbstaufrufes oder des aufrufens einer fortführenden Seite.

Mittwoch, 23. Februar 2011

Datenbankanbindung mit PHP

Da mir bereits erfolgreich eine Verbindung aus php und MySQL geglückt ist ( das Monatsauswertungstool ), sollte nun, um eingehende Pakete zu prüfen eine Website geschrieben werden, die die Sendungsdaten aufnehmen soll. Diese aufgenommenen Daten werden dann mit in der Datenbank gespeicherten Daten abgegelichen und ein weiterer Eintrag in einer neuen Table erzeugt.

Mithlife von php und Javascript wurde zuerst die website geschrieben. Hierbei handelt es sich um ein einfaches Formularfeld, das immer aktiv ist. Dies geschieht mit der Methode Focus() von JavaScript. Allerdings reagieren die Browser unterschiedlich darauf, und es spielt scheinbar auch eine Rolle, welchen Server man verwendet, damit der Cursor an der gewünschten Stelle blinkt.

Ist das geschafft, kann man sich dem Eingabegerät zuwenden. Die Sendungsdaten werden als Barcode von einem Laserscanner erfasst und dank des fokussierten Formularfeldes sofort an die richtiege Stelle geschrieben. Die Ausführung des Php - Codes erfolgt sofort nach dem Scanvorgang. Die Nummer wird mit der Zeile in der Datenbank vergleichen - ist sie vorhanden wird ein entsprechender Eintrag zusammengestellt und in die Datenbank zurückgeschrieben.

Nun den verwendeten Methoden:

 mysql_connect(String source, String connection, String password):
Stellt eine Verbindung mit der Datenbak des Servers her. 
  • "source" ist die Angabe der Quelle, entweder die DHCP - Bezeichnung oder die IP-Nummer
  • "connection" ist die Bezeichnung der Verbindung mit der MySQL Datenbank
  • "password" ist das MySQL Passwort der Verbindung
Php 5 ist damit ohne weitere Hilfsmittel in der Lage auf die Datenbank zu verbinden und Daten zu lesen oder zu schreiben.

Weitere Details gibts morgen.