|
|
|
|
| Zitat von Delvey
Vielen Dank, jetzt muss ich nur noch schnell StiftUndCo einbinden.
/€: Ok, Programm wird kompiliert, läuft und zeigt das von dir beschriebene Verhalten. Ich schau mal näher hin.
/€2: Ich bekomme bei t.zeichen() grundsätzlich nur '?' zurück, egal ob ich Ziffern oder Buchstaben drücke. Bei einigen Buchstaben wie n und m wird das Programm sofort geschlossen, bei h zum Beispiel erst nach mehrmaligem Drücken.
| | Hmmm... auf dem blatt mit den erklärungen stehts so:
Anfrage: zeichen() : Zeichen (char)
vorher: Die Tastatur erhält ein Zeichen.
nachher: Zeichen enthält das zuerst eingegebene Zeichen der Tastatur. Dieses Zeichen ist danach nicht mehr in der Tastatur gespeichert.
|
|
|
|
|
|
|
| Zitat von mastarh2k3
Hmmm... auf dem blatt mit den erklärungen stehts so:
Anfrage: zeichen() : Zeichen (char)
vorher: Die Tastatur erhält ein Zeichen.
nachher: Zeichen enthält das zuerst eingegebene Zeichen der Tastatur. Dieses Zeichen ist danach nicht mehr in der Tastatur gespeichert.
| |
Die Klasse Tastatur implementiert einen KeyListener. Wenn eine Taste gedrückt wird, steht auch noch der korrekte KeyChar drin. Am Ende der Methode steht das aktuelle Zeichen aber wieder auf CHAR_UNDEFINED. Da passt irgendetwas nicht.
|
|
|
|
|
|
|
olol
|
Code: |
// while (t.wurdeGedrueckt() == false)
// {
// w = t.zeichen();
// }
switch ( t.zeichen() )
{
case '1' :
new Aufgabe1().führeAus();
break; |
|
Das funktioniert. Allerdings, wenn ich die while schleife auskommentiere geht das fenster direkt weg!
AAh logisch ansonsten tritt sofort der fall "default" ein.
|
[Dieser Beitrag wurde 1 mal editiert; zum letzten Mal von mastarh2k3 am 13.11.2006 23:56]
|
|
|
|
|
|
| Zitat von mastarh2k3
olol
Das funktioniert. Allerdings, wenn ich die while schleife auskommentiere geht das fenster direkt weg!
AAh logisch ansonsten tritt sofort der fall "default" ein.
| |
Stimmt, das ständige Aufrufen der zeichen()-Methode setzt das aktuelle Zeichen wieder zurück. Solange wurdeGedrueckt() nicht true ist, macht es gar keinen Sinn die zeichen()-Methode aufzurufen.
|
|
|
|
|
|
|
Ok, jetzt klappt bei mir die Wahl-Klasse. Es werden auch die Aufgaben aufgerufen. Allerdings arbeiten diese nicht. Es gibt zwar einen Bildschirm der entsprechenden Größe aber darauf passiert nix.
Aktuelle Wahl.java (hab auch mal die Tastatur-, Stift- und Bildschirmbezeichner geändert sowie die switch methode....):
|
Code: |
package malen;
import stiftUndCo.*;
public class Wahl
{
public void führeAus()
{
Bildschirm bx = new Bildschirm(500,300);
Tastatur tx = new Tastatur();
Stift sx = new Stift();
int i = 0;
int z = 1;
char w = 0;
while (z <= 9)
{
sx.bewegeBis(20,i+14);
i = i+14;
sx.schreibe("Aufgabe "+z+": "+z+" drücken");
z = z+1;
}
sx.bewegeBis(20,i+14);
sx.schreibe("Beenden: Irgendwas anderes drücken");
while (tx.wurdeGedrueckt() == false)
{}
{
switch ( tx.zeichen() )
{
case '1' :
new Aufgabe1().führeAus();
bx.gibFrei();
sx.gibFrei();
tx.gibFrei();
break;
case '2' :
new Aufgabe2().führeAus();
bx.gibFrei();
sx.gibFrei();
tx.gibFrei();
break;
case '3' :
new Aufgabe3().führeAus();
bx.gibFrei();
sx.gibFrei();
tx.gibFrei();
break;
case '4' :
new Aufgabe4().führeAus();
bx.gibFrei();
sx.gibFrei();
tx.gibFrei();
break;
case '5' :
new Aufgabe5().führeAus();
bx.gibFrei();
sx.gibFrei();
tx.gibFrei();
break;
case '6' :
new Aufgabe6().führeAus();
bx.gibFrei();
sx.gibFrei();
tx.gibFrei();
break;
case '7' :
new Aufgabe7().führeAus();
bx.gibFrei();
sx.gibFrei();
tx.gibFrei();
break;
case '8' :
new Aufgabe8().führeAus();
bx.gibFrei();
sx.gibFrei();
tx.gibFrei();
break;
case '9' :
new Aufgabe9().führeAus();
bx.gibFrei();
sx.gibFrei();
tx.gibFrei();
break;
default :
bx.gibFrei();
sx.gibFrei();
tx.gibFrei();
break;
}
}
}
} |
|
Bzw hab ich alle Projektdateien nun unter http://mitglied.lycos.de/mastarh/java/malen/
Und danke für deine Hilfe =) Ohne wär ich wohl aufgeschmissen...
|
[Dieser Beitrag wurde 1 mal editiert; zum letzten Mal von mastarh2k3 am 14.11.2006 0:07]
|
|
|
|
|
|
| Zitat von mastarh2k3
Ok, jetzt klappt bei mir die Wahl-Klasse. Es werden auch die Aufgaben aufgerufen. Allerdings arbeiten diese nicht. Es gibt zwar einen Bildschirm der entsprechenden Größe aber darauf passiert nix.
Aktuelle Wahl.java (hab auch mal die Tastatur-, Stift- und Bildschirmbezeichner geändert sowie die switch methode....):
Bzw hab ich alle Projektdateien nun unter http://mitglied.lycos.de/mastarh/java/malen/
Und danke für deine Hilfe =) Ohne wär ich wohl aufgeschmissen...
| |
Ok, ich seh's. In den Fenstern passiert nichts.
Kleiner Tipp am Rande: wenn du folgenden Block eh in jedem Fall ausführen willst, reicht es, ihn einmal nach dem switch-Block zu schreiben.
|
Code: |
bx.gibFrei();
sx.gibFrei();
tx.gibFrei(); |
|
|
|
|
|
|
|
|
Ok *updated*
/E:
Die Aufgaben werden im Wahl-Fenster (welches nicht geschlossen wird) ausgeführt O.o
|
[Dieser Beitrag wurde 1 mal editiert; zum letzten Mal von mastarh2k3 am 14.11.2006 0:18]
|
|
|
|
|
Thema: Problem mit Java ( bitte um Hilfe ) |