|
Java-Standalone
Eigene Java-Applikationen ohne Webseiten
Homepage von PS-Trainer - Entwicklung - Java - an PS-Trainer |
|
| Mit Java können nicht nur Applets hergestellt werden, sondern auch Programme (applications). | Hier finden sie einige Hinweise zur Erstellung von Java-Programmen |
|
| Fenster: Ohne Fenster laufen nur Server-Programme (services, demons) und einfache Werkzeuge. Bei allen anderen Programmen erwarten die AnwenderInnen Fenster. Fenster werden wie bei Applets als Frame-Objekte erzeugt. Wie gewohnt werden die Basis-Eigenschaften des Fensters (Grösse, Lage, usw.) eingestellt. Alle Fenster-Objekte werden mit add hinzugefügt, zuletzt wird das Fenster sichtbar geschaltet. |
Ein eigenes Programmfenster: import java.awt.*;
public class mywin { public static void main (String args[]) { Label theshow=new Label ("Der Text"); theshow.setAlignment(Label.CENTER); Frame thewin=new Frame(); thewin.setSize (400,400); thewin.setLocation (50,50); thewin.setTitle ("Der Titel"); thewin.add (theshow); thewin.setVisible(true); } } |
| WindowListener: Zur Behandlung der Fenster-Ereignisse verwenden sie den WindowListener. Das müssen sie mit ...implements WindowListener bekannt geben. Für jedes Objekt (Fenster), das der WindowListener beobachten soll, legen sie addWindowListener() fest. Hier wird ein eigenes Objekt fenster definiert, und die gesamte Fenster-Behandlung damit aus main() ausgelagert. Von den Standard-Ereignissen des WindowListener wird hier nur windowClosing verwendet. |
import java.awt.* import java.awt.event.*; public class fenster extends Frame implements WindowListener { public static void main (String args[]) { fenster hauptfenster=new fenster(); } public fenster () { Label ausgabe=new Label ("Der Text"); ausgabe.setAlignment (Label.CENTER); addWindowListener(this); setSize (); ... ... add(ausgabe); hauptfenster.setVisible(true); } public void windowClosing(WindowEvent evt) { dispose(); System.exit(0); } public void windowOpened(WindowEvent evt) { } public void windowDeiconified(WindowEvent evt) { } public void windowIconified(WindowEvent evt) { } public void windowClosed(WindowEvent evt) { } public void windowActivated(WindowEvent evt) { } public void windowDeactivated(WindowEvent evt) { } } |
| Menüleisten und Menüs:
Dienen zur Eingabe von Befehlen der AnwenderInnen. Beachten sie, dass es hier einige Konventionen gibt, die zwar nicht zwingend sind, aber möglichst gut befolgt werden sollten - ihre Benutzerinnen finden rascher, was sie suchen. Die Reihenfolge der Menüs: Datei - Bearbeiten - ... - Hilfe Menü Datei: Öffnen - Speichern - Drucken - Beenden Menü Bearbeiten: Ausschneiden - Kopieren - Einfügen - Löschen - ... - Suchen ... Menü Hilfe: ... - über mich. Die Programmierung erfolgt schrittweise: Das Objekt MenuBar enthält Menu-Objekte, diese später die einzelnen MenuItem-Objekte. Mit setMenuBar wird die fertig zusammengebaute Menüleiste in das Fenster eingefügt. Wie üblich müssen sie die entsprechenden Events abfangen, um auf AnwenderInnen-Befehle zu reagieren. Die Syntax des Menu-Objekts lässt die Möglichkeit offen, das Menü ein- oder auszuschalten off ist entweder true oder false. : Menu menuname = new Menu(String menutext, boolean off); |
import java.awt.*;
import java.awt.event.*; public class standalone extends Frame implements WindowListener { public static void main (String args[]) { standalone hauptfenster=new standalone(); } public standalone () { MenuBar menueleiste=new MenuBar(); Menu menue1=new Menu ("Datei"); Menu menue2=new Menu ("Bearbeiten"); menueleiste.add(menue1); menueleiste.add(menue2); setMenuBar(menueleiste); addWindowListener(this); setSize (); ... ... setVisible(true); } public void windowClosing(WindowEvent evt) {...} ... } |
| Menübefehle: Genau wie die hierarchisch höher stehenden Objekte MenuBar und Menu wird MenuItem erzeugt und an das entsprechende Menü mit add angefügt. Optional können auch shortcuts definiert werden. Bei Shortcuts geben sie entweder das Zeichen für die Auslösung an oder den ASCII-Code der Taste. Die Breite der Menüs wird automatisch je nach Länge der Texte eingestellt. |
MenuBar menueleiste=new MenuBar();
Menu menue1=new Menu ("Datei"); MenuItem neu=new MenuItem ("Neue Datei"); neu.setShortcut(new MenuShortcut('n')); menue1.add(neu); ... MenuItem beenden=new MenuItem ("Beenden"); beenden.setShortcut(new MenuShortcut('q')); menue1.add(beenden); |
| Der Actionlistener: Menü-Ereignisse behandeln sie mit dem ActionListener. Erwird zusätzlich zum WindowListener implementiert: |
public class standalone extends Frame implements WindowListener,ActionListener
|
| Der ActionListener wird (nur) auf jene Menübefehle angewendet, bei denen sie das mit addAction anordnen: |
neu.addActionListener(this);
... beenden addActionListener(this); |
| Wenn das eingerichtet ist, können sie die Menü-Events
abfangen und behandeln: Zuerst wird geprüft, ob es sich überhaupt um ein Menü-Event handelt, dann filtern sie jedes einzelne zu behandelnde Menü aus und behandeln den Befehl. |
public void actionPerformed (ActionEvent evt) { if (evt.getSource() instanceof MenuItem { String dasmenu=evt.getActionCommand(); if (dasmenu.equals("Neue Datei"); { ... } if (dasmenu.equals("Beenden")) { dispose(); System.exit(0); } } } |
| Aktuelle Daten dieser Seite | Letzte Änderung: |
| |