PS-Trainer
Java-Standalone
Eigene Java-Applikationen ohne Webseiten
Homepage von PS-Trainer - Entwicklung - Java - an PS-Trainer
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

Java Inhalt: Minimalversion - main()
Fenster
Fenster-Ereignisse mit WindowListener behandeln
Menüleiste & Menüs einfügen
Menübefehle einfügen.
Menüereignisse mit dem ActionListener behandeln

Minimalversion:
Einige von Applets bekannte Punkte werden hier nicht benötigt:
Die Bibliothek java.applet.* und alle damit zusammenhängenden Standard-Methoden, wie z.B. init(), start() usw.
Die Basisklasse erweitert nicht mehr die Klasse Applet.
Dafür ist die Methode main() notwendig: Jede sebstlaufende Java-Applikation benötigt genau eine main()-Methode.
Beim Start (von der Konsole) können sie Text-Parameter mitgeben, die über ein String-array verfügbar sind.

Datei minijava.java:
public class minijava {
  public static void main (String args[]) {
    System.out.print("Java Minimal-App");
  }
}
Kompilierung:
javac minijava.java
Programmstart:
java minijava

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);
    }
  }
}

Java-Fenster


Homepage von PS-Trainer - Entwicklung - Java - an PS-Trainer

Aktuelle Daten dieser Seite Letzte Änderung:
  Geocities