Fachhochschule München

Werbung
Fachhochschule München
Bereich Datentechnik
Fachbereich Elektrotechnik und Informationstechnik
Prof. Dr. Alfred Irber
Prüfung aus PROGRAMMIERUNG GRAPHISCHER OBERFLÄCHEN (SS 2003)
Arbeitszeit 90 Minuten
Beliebige eigene Unterlagen
Aufgabenblatt bitte abgeben !
21.Juli 2003
**** Viel Erfolg !!! ****
1. Aufgabe (25 P)
Die Java- Applikation „Textfield-Demo“ , dient zur Eingabe von Text.
Der zugehörige Code ist zum Teil im Anhang gegeben.
a) Ergänzen Sie den Code so, dass beim Drücken des x-Kreuzes die Applikation beendet wird. Verwenden Sie hierbei einen
geeigneten EventListener und realisieren Sie ihn als anonyme Klasse.
(5)
b) In das Textfeld soll beliebiger Text eingegeben und editiert werden können. Die Eingabe von Ziffern soll allerdings nicht
möglich sein. Erweitern Sie den Programmcode um diese Funktionalität.
(15)
c) Ergänzen Sie das Programm zur voll lauffähigen Applikation.
(5)
Fachhochschule München
Bereich Datentechnik
Fachbereich Elektrotechnik und Informationstechnik
Prof. Dr. Alfred Irber
PROGRAMMIERUNG GRAPHISCHER OBERFLÄCHEN
Beiblatt
Zur 1. Aufgabe
package textfieldemo;
import java.awt.*;
import java.awt.event.*;
public class TextfeldDemo extends Frame
{
TextField textField=null;
public TextfeldDemo() {
//Frame
super("Textfeld-Demo");
setBackground(Color.lightGray);
setSize(250,150);
setLocation(200,200);
setVisible(true);
setResizable(false);
setLayout(null);
//Label
Label label1= new Label("Eingabefeld");
label1.setBounds(50,40,100,30);
add(label1);
//TextFeld
textField= new TextField();
textField.setBounds(50,70,150,25);
textField.setEditable(true);
add(textField);
}
.
.
.
(SS 2003)
-22. Aufgabe (25P)
Die dargestellte Java-Applikation erlaubt es durch Drücken des Buttons „-->“ das selektierte Listenelemente von Liste1 nach
Liste2 zu verschieben und umgekehrt.
Ferner gelten folgende Randbedingungen:
- Es darf immer nur 1 Listenelement in Liste1 oder Liste2 selektiert sein, d.h bei Selektion eines Elementes ist ein
eventuell selektiertes Element der anderen Liste zu deselektieren.
- Ist ein Element in der linken Liste selektiert, so muss der --> Button aktiviert sein der <-- Button dagegen deaktiviert.
- Beim Drückern des  Buttons wird das selektierte Element von der linken Liste gelöscht und in der rechte Liste am
Ende eingefügt und umgekehrt.
a) Erweitern Sie das im Anhang gegebene Codegerüst so, dass oben genannte Funktionaltät realisiert wird.
Bei der Realisierung darf von jedem Listenertyp nur 1 Exemplar verwendet werden.
Fachhochschule München
Bereich Datentechnik
Fachbereich Elektrotechnik und Informationstechnik
Prof. Dr. Alfred Irber
PROGRAMMIERUNG GRAPHISCHER OBERFLÄCHEN
Beiblatt
Zur 2. Aufgabe
//ZweiListenGui.java
package zweilisten;
import java.awt.*;
import java.awt.event.*;
public class ZweiListenGui
extends Frame
{
//Klassenvariable
//AWT-Steuerelemente
List list1 = new List();
List list2 = new List();
Button btnLinksRechts=null;
Button btnRechtsLinks=null;
public ZweiListenGui()
{
super("Zwei Listen");
setBackground(Color.lightGray);
setSize(500,300);
setLocation(200,200);
setVisible(true);
setResizable(false);
setLayout(null);
//Button "LinksRechts" -->
btnLinksRechts= new Button("-->");
btnLinksRechts.setBounds(200,130,100,30);
btnLinksRechts.setEnabled(false);
add(btnLinksRechts);
//Button "RechtsLinks" <-btnRechtsLinks= new Button("<--");
btnRechtsLinks.setBounds(200,170,100,30);
btnRechtsLinks.setEnabled(false);
add(btnRechtsLinks);
//Liste1
list1.setBounds(50,100,100,150);
list1.setMultipleMode(false);
//Single Select
add(list1);
//Liste2
list2.setBounds(350,100,100,150);
list2.setMultipleMode(false); );
//Single Select
add(list2);
//Labels
Label label1= new Label("Liste1");
label1.setBounds(50,60,100,30);
add(label1);
Label label2= new Label("Liste2");
(SS 2003)
label2.setBounds(350,60,100,30);
add(label2);
//Liste1 füllen
list1.add("Abel");
list1.add("Galler");
list1.add("Huber");
list1.add("Irber");
list1.add("Kugler");
list1.add("Schuster");
}
}
//ZweilistenMain.java
import java.awt.event.*;
public class ZweiListenMain {
public ZweiListenMain() {
ZweiListenGui gui = new ZweiListenGui();
public static void main(String[] args) {
ZweiListenMain zweiListenMain1 = new ZweiListenMain();
}
}
-33. Aufgabe (40 P)
Die dargestellte Oberfläche einer Java-Datenbank-Applikation erlaubt das Modifizieren einer Namenstabelle tb_namen, die in
einer MySQL-Datenbank abgelegt ist.
Datenbankseitig verfügt die Tabelle aus den 2 Spalten ID und Namen., wobei die ID-Spalte als Primärschlüssel verwendet wird
und die Eigenschaft auto_increment besitzt.
Auf der Java-Oberfäche dargestellt wird nur die Namenspalte.
Die Applikation verfügt über folgende Menüpunkte:
File/Öffnen: Der Inhalt der Datenbanktabelle wird auf der Oberfläche dargestellt
Bearbeiten/Zeile löschen: Auf Oberfläche und Datenbank wird die selektierte Zeile gelöscht
Bearbeiten/Leere Zeile einfügen: Auf Oberfläche und Datenbank wird eine leere Zeile eingefügt.
Ferner kann jede Zeile editiert werden.
Das Editieren einer Zeile führt zu einem sofortigen Update des korrespondierenden Datensatzes in der Datenbank.
Weitere Details können dem beigefügten Codefragment entnommen werden.
PS: Zur Vereinfachung können Sie davon ausgehen, dass sich alle Datensätze neben der ID auch im Namen unterscheiden.
a) Ergänzen Sie im Anhang in der Klasse ClsDbNamenMapper die Methode EinfuegenNamenInDB(..) so, dass der
übergebene Namen in die Datenbanktabelle eingefügt wird. (5 P)
b) Ergänzen Sie in der Klasse ClsDbNamenMapper die Methode LoeschenNamenAusDB(..) so, dass der übergebene Namen
aus der Datenbanktabelle gelöscht wird. (5 P)
c) Ergänzen Sie in der Klasse ClsDbNamenMapper die Methode UpdateNamenInDB(..) so, dass der übergebene String
sAlterName durch den ebenfalls übergebenen String sNeuerName ersetzt wird. Hierbei darf kein Datensatz gelöscht werden.
(5P)
e) Ergänzen Sie in der Klasse Frame1 die Methode jMenuItemZeileLoeschen_actionPerformed so, dass - wie oben bereits
beschrieben – die selektierte Zeile auf der Oberfläche und in der Datenbank gelöscht wird. (15P)
f) Welche Methode wird automatisch aufgerufen, falls der Editiervogang einer Zelle z.B durch Drücken der Return-Taste
beendet wird (5P)
g) Erweitern Sie diese Methode so, dass der editierte Datensatz auch in der Datenbank aktualisiert wird.(5P)
*** Ende ***
Herunterladen