2.6 JabeS.java - Test 006, Ordner w006
Taufe
- Das Gesamtsystem wurde nun JabeS getauft.
- JabeS steht für "Java based educational System"
- Ein entsprechendes Logo wurde entwickelt:
|
Fenstergröße
- Die Fenstergröße sollte sich nun automatisch an die Bildschirmgröße anpassen.
|
Bild 2.6-1: Eine Logo-Variante zu JabeS.
Erweiterung der Funktionalität der Elemente
- Um aufgrund der gescannten Elemente auch ein Auswahlmenü erzeugen zu können, muß die Bereitstellung der Elemente-Objekte wieder aus der Klasse Pan herausgelöst und in eine eigene Klasse gebracht werden, da das Menü in der Klasse Wedi erstellt wird und demzufolge die Element-Objekte auch dort zur Verfügung stehen müssen.
- Diese Klasse heißt elemente/ElementeLoader.
- In ihr müssen nun nötigenfalls im Applet-Betrieb zwei Dummy-Methoden aus der Klasse hilfsklassen/Dateioperationen aktiviert werden.
- Die Unterordner im Verzeichnis elemente sollen sich als Menüpunkte in der Menüleiste wiederspiegeln.
- In den einzelnen Menüs soll es dann für jede Elemente-Klasse einen Eintrag gleichen Namens geben.
- Bei Auswahl eines Elements wird an die aktuelle Curser-Position links der Element-Befehl gefolgt von einem einfachen Parameterbeispiel eingetragen.
- Auf diese Weise wird es einfacher die Codierung zu erlernen.
|
- Weitere Menüs werden in eigenen Klassen im Package gui beschrieben werden, wie hier zunächst das Hilfe-Menü durch die Klasse HilfeMenue.
|
- Um die Möglichkeit komplexere Objekte, wie Applets, einfügen zu können aufzuzeigen, wurden die Elemente um ein Grafik-Element elemente/grafik/baum1 ergänzt.
- Dieses ist aber zur Zeit nur ein Platzhalter mit eingeschränkter Funktionalität für das noch zu entwickelnde Element.
- Im folgenden ist nur die neu hinzugekommene Klasse gui/Menue als Quelltext dargestellt.
|
- Nach und nach werden auch kleine Hilfsmethoden in die Basisklasse Element eingepflegt (setzeGroesse(Component komponente,int hoehe), generiereBefehl()), die das Erstellen neuer Elemente eindeutiger und einfacher machen.
|
w006.zip - Download des hier besprochenen Programms mit Quelltexten.
package gui;
/**
* <h4>Menue.java - Klasse Java based educational System jabes.</h4>
* <br/>
* Copyright (C) 2011 Guido Kramann<br/>
* kramann@fh-brandenburg.de<br/>
* http://www.kramann.info<br/>
* <br/>
* <p>
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* </p>
* <p>
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
* </p>
* <p>
* You should have received a copy of the GNU General Public License
* along with this program (gpl.html). If not, see http://www.gnu.org/licenses/.
* </p>
*/
import javax.swing.JMenuBar;
import javax.swing.JMenuItem;
import javax.swing.JMenu;
import java.awt.event.ActionListener;
import java.awt.event.ActionEvent;
import hilfsklassen.Dateioperationen;
import jabes.JabeS;
import elemente.ElementeLoader;
import gui.HilfeMenue;
public class Menue extends JMenuBar
{
private JabeS jabes;
/**Die Menue-Funktionen sollen auf alles Zugriff haben, deshalb bekommen sie
eine Instanz des Wysiwyg-Editors.
*/
public Menue(JabeS jabes)
{
this.jabes = jabes;
for(int i=0;i<ElementeLoader.alleElementeUnterordner.length;i++)
{
JMenu men = new JMenu(ElementeLoader.alleElementeUnterordner[i]);
men.setName(ElementeLoader.alleElementeUnterordner[i]);
this.add(men);
}
//Items durchgehen und an der richtigen Stelle einhängen:
for(int i=0;i<ElementeLoader.alleElementKlassennamen.length;i++)
{
//Unterordnername extrahieren:
String unterordner = Dateioperationen.extrahiereEndung(
Dateioperationen.entferneEndung(
ElementeLoader.alleElementKlassennamen[i]
)
);
System.out.println("Menuepunkt:"+ElementeLoader.alleNamenOhnePackagepfad[i]
+" Ordner:"+ unterordner
);
JMenuItem eintrag = new JMenuItem(ElementeLoader.alleNamenOhnePackagepfad[i]);
eintrag.addActionListener(new MenueLauscher(ElementeLoader.objekte[i].getBeispiel()));
//Passendes Menue finden:
for(int k=0;k<this.getMenuCount();k++)
{
JMenu men = this.getMenu(k);
String menname = men.getName();
if(menname.equals(unterordner))
{
men.add(eintrag);
break;
}
}
}
this.add(new HilfeMenue());
}
private class MenueLauscher implements ActionListener
{
private String beispiel = "";
public MenueLauscher(String beispiel)
{
this.beispiel=beispiel+"
";
}
public void actionPerformed(ActionEvent e)
{
//Beispieltext an die aktuelle Curser-Position des linken Fensters von jabes
//einfügen:
String zusatz = "";
String text = jabes.textlinks.getText();
int pos = jabes.textlinks.getCaretPosition();
if(pos>0 && text!=null && text.length()>1 && text.charAt(pos-1)!='
')
zusatz="
";
jabes.textlinks.insert(zusatz+beispiel,pos);
jabes.textlinks.repaint();
}
}
}
Code 2.6-1: gui/Menue.java - Test 006, Ordner w006