zeichnen-programm

shixlaw

Mitglied
hallo ich habe als hausaufgabe folgenede aufgabe bekommen:
Stift kann radieren
Informieren Sie sich in der Dokumentation über die Stift-Funktionen radieren() und normal().
Damit von zeichnen auf radieren umgeschaltet werden kann, benutzen Sie bitte die Tastatur.
Informieren Sie sich in der Dokumentation über die Klasse Tastatur.
Bei einem Tastendruck schaltet der Stift von zeichnen (normal-Modus) auf radieren (aber nicht wieder zurück).
Als Vorlage für diese Aufgabe halten Sich sich bitte an das folgende Struktogramm.

ich hab jetzt mal angefangen das programm zu schreiben aber es kommt die ganze zeit folgende fehlermeldung:
cannot find symbol - variable n
wie kann ich in java variablen erstellen???

hier mein quellcode

// Aktionsteil
Java:
        do{
            if(dieMaus.istGedrueckt()+dieTastatur.wurdeGedrueckt(n))
            {
                meinStift.normal();
                meinStift.runter();
                meinStift.bewegeBis(dieMaus.hPosition(),dieMaus.vPosition());
            }
            if(dieMaus.istGedrueckt()+dieTastatur.wurdeGedruckt(r))
            {
                meinStift.radieren();
                meinStift.runter();
                meinStift.bewegeBis(dieMaus.hPosition(),dieMaus.vPosition());
            }
            else
            {
                meinStift.bewegeBis(dieMaus.hPosition(),dieMaus.vPosition());
                meinStift.hoch();
            }
        }
        while(!dieMaus.spezialKlick());
 

shixlaw

Mitglied
ich seh grad ich hab nur den halben code gepostet...
hier ist der ganze falls nötig

Java:
import sum.kern.*;
/**
 * @author 
 * @version 
 */
public class meinProgramm2
{
    // Objekte
    Bildschirm derBildschirm;
    Stift meinStift;
    Maus dieMaus;
    Tastatur dieTastatur;
    

    // Konstruktor
    public meinProgramm2()
    {
        derBildschirm = new Bildschirm(500,500);
        meinStift = new Stift();
        dieMaus = new Maus();
        dieTastatur = new Tastatur();
       
    }

    // Dienste
    public void fuehreAus()
    {
        // Aktionsteil
      
        do{
            if(dieMaus.istGedrueckt()+dieTastatur.wurdeGedrueckt(n))
            {
                meinStift.normal();
                meinStift.runter();
                meinStift.bewegeBis(dieMaus.hPosition(),dieMaus.vPosition());
            }
            if(dieMaus.istGedrueckt()+dieTastatur.wurdeGedruckt(r))
            {
                meinStift.radieren();
                meinStift.runter();
                meinStift.bewegeBis(dieMaus.hPosition(),dieMaus.vPosition());
            }
            else
            {
                meinStift.bewegeBis(dieMaus.hPosition(),dieMaus.vPosition());
                meinStift.hoch();
            }
        }
        while(!dieMaus.spezialKlick());
        
        
        // Aufraeumen
        meinStift.gibFrei();
        derBildschirm.gibFrei();
        dieMaus.gibFrei();
        dieTastatur.gibFrei();
    }
}
 
T

Tomate_Salat

Gast
Was für ein Typ soll [c]n[/c] sein? Das gleiche Problem hast du bei [c]r[/c]!

Java:
if(dieMaus.istGedrueckt() + dieTastatur.wurdeGedrueckt(n))

sollte wohl eher so ausschauen:
Java:
if(dieMaus.istGedrueckt() && dieTastatur.wurdeGedrueckt(n))

Wieviel Kenntnisse hast du den in Java, wenn du nicht weist, wie man variablen deklariert / wie man mehrere Bedingungen in IF-Anweisungen verwendet?! Schau dir vllt mal Java ist auch eine Insel an, du hast anscheinend echt nachholbedarf

Variablen erstellt man normalerweise so
Java:
String stringVar = "ich bin eine Zeichenkette";
int zahl = 5;
char buchstabe = 'a';
float kommazahl = 2.54;
 

shixlaw

Mitglied
danke schonmal für die Antworten :)
nunja wir haben letzte woche mit java angefangen also nicht wirklich viel :D
ich versuch jetzt einfach mal zu beschreiben was ich machen will:
ich will ein programm schreiben mit dem man bei mausklick zeichnen kann(wie bei paint)
das habe ich auch hinbekommen.
mein jetziger versuch beinhaltet noch die radier funktion, das heißt ich wollte bei tastendruck "n" normal zeichnen und bei tastendruck "r" wollte ich radieren
 

shixlaw

Mitglied
das habe ich schon ausprobiert klappt aber dennoch niht und es kommt folgende fehlermeldung:
wurdeGedrueckt() in sum.kern.Tastatur cannot be applied to (java.lang.String)
 
T

Tomate_Salat

Gast
nett mit was Ihr nach einer Wochen programmieren anfängt :-/. Wenn ich bedenke was für einen ****** wir in der Ausbildung in der BBS machen ;(.

Naja ok, wäre nicht verkehrt wenn du die Dokumentation zu den von dir verwendeten Methoden hier mal postest, dann können wir dir zielgerichteter Helfen.
 

Michael...

Top Contributor
War ja nur geraten. Was steht denn in der Dokumentation zur Methode drin?
Auch denkbar wäre:
Java:
if(dieMaus.istGedrueckt()+dieTastatur.wurdeGedrueckt('n'))
 

shixlaw

Mitglied
was für methoden??? :D
ich hab letzte woche erst damit angefangen und es ist ein nebenfach von mir...
als leistungkurz habe ich e-technik deswegen hab ich null plan von info

ich glaub das einzigste was mir bei meinem programm fehlt ist die variable n...
das heißt ich muss dem programm sagen, dass wenn ich die "n" taste drücke soll er normal zeichnen und wenn ich die "r" taste drücke soll es radieren nur leider kennt das programm wahrscheinlich nicht, dass ich mit n tatsächlich die n-taste meine
 
T

Tomate_Salat

Gast

shixlaw

Mitglied
wurdeGedrueckt

public boolean wurdeGedrueckt()

Es wird geprueft, ob ein Zeichen im Tastaturpuffer ist.

Returns:
true, wenn mindestens ein Zeichen im Zastaturpuffer ist.
 

shixlaw

Mitglied
istGedrueckt

public boolean istGedrueckt()

Prueft, ob eine Maustaste im Moment gedrueckt ist.

Returns:
true, wenn eine Maustaste gedrueckt ist.

aber darum handelt es sich nicht ;)
 
T

Tomate_Salat

Gast
das problem ist: nach der Doku erwarten beide Methoden keine Parameter...Machen wirs einfacher: kannst du die gesamte Doku zur Tastatur mal posten?
 

shixlaw

Mitglied
Class Tastatur

java.lang.Object
extended by sum.kern.Tastatur

public class Tastatur
extends Object

Eine Tastatur realisiert die Tastatureingabe des verwendeten Computers. Sie speichert die eingegebenen Tastaturzeichen in der Reihenfolge ihrer Eingabe. Für einige Tastatureingaben stehen bereits Konstanten zur Verfuegung: ESCAPE, ENDE, POS1, PFEILLINKS, PFEILRECHTS, PFEILOBEN, PFEILUNTEN, BILDUNTEN, BILDAUF, TAB, EINGABE, BACKSPACE, DELETE, F1, F2, ... , F12

Version:
7.0 vom 21.9.2008
Author:
Bernard Schriek

Constructor Summary
Tastatur()
Die Tastatur wird initialisiert und enthaelt keine Zeichen.

Method Summary
void gibFrei()
Dummy-Prozedur
void weiter()
Mit weiter() wird das vorderste Zeichen im Tastaturpuffer entfernt.
boolean wurdeGedrueckt()
Es wird geprueft, ob ein Zeichen im Tastaturpuffer ist.
char zeichen()
Das erste Zeichen des Tastaturpuffers.

Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait


Constructor Detail
Tastatur

public Tastatur()

Die Tastatur wird initialisiert und enthaelt keine Zeichen.

Method Detail
gibFrei

public void gibFrei()

Dummy-Prozedur

weiter

public void weiter()

Mit weiter() wird das vorderste Zeichen im Tastaturpuffer entfernt. Falls der Tastaturpuffer vorher nicht mit "wurdeGedrueckt()" gestestet wurde, erfolgt eine Fehlermeldung.

wurdeGedrueckt

public boolean wurdeGedrueckt()

Es wird geprueft, ob ein Zeichen im Tastaturpuffer ist.

Returns:
true, wenn mindestens ein Zeichen im Zastaturpuffer ist.

zeichen

public char zeichen()

Das erste Zeichen des Tastaturpuffers. Es wird erst mit "weiter()" geloescht. Mehrere Aufrufe von "zeichen()" liefern also das gleiche Zeichen. Falls der Tastaturpuffer vorher nicht mit "wurdeGedrueckt()" gestestet wurde, erfolgt eine Fehlermeldung.

Returns:
erstes Zeichen im Tastaturpuffer
 

Michael...

Top Contributor
Müsste dann in etwa so aussehen:
Java:
if (dieTastatur.wurdeGedrueckt()) {
    char c = dieTastatur.zeichen();
    dieTastatur.weiter();
    if (c=='n') {
        ...
    }
    else if (c=='r') {
        ...
    }
    ...
}
 

shixlaw

Mitglied
ah sauber danke :)
jetzt hab ich nur noch ein letztes problem
dieTastatur.weiter();
ist ja dafür da, um den tastaturpuffer zu leeren...
das problem dabei ist, dass wenn ich diese funktion in die if zeile setze er es die ganze zeit wiederholt und ich damit die taste 'n' die ganze zeit gedrückt halten muss, um etwas zu zeichnen
 

ARadauer

Top Contributor
War ja nur geraten. Was steht denn in der Dokumentation zur Methode drin?
Auch denkbar wäre:
Java:
if(dieMaus.istGedrueckt()+dieTastatur.wurdeGedrueckt('n'))

eher

Java:
if(dieMaus.istGedrueckt() && dieTastatur.wurdeGedrueckt('n'))

die bringen euch nicht mal && und || bei und wollen das ihr paint schreibt... :(
 
Zuletzt bearbeitet:

newbie2009

Bekanntes Mitglied
ich denke ma , es soll denen nur den umgang mit java näher bringen , deshalb wurden die Klassen von ihrem lehrer bestimmt schon so implementiert, dass man diese nur logisch zusammensetzt um zum ergebnis zu kommen :) ansonsten bezweifle ich , dass wenn man nicht mal weiß , was eine methode ist sowas auf die beine bekommt :)
 

shixlaw

Mitglied
Java:
import sum.kern.*;
/**
 * @author 
 * @version 
 */
public class meinProgramm2
{
    // Objekte
    Bildschirm derBildschirm;
    Stift meinStift;
    Maus dieMaus;
    Tastatur dieTastatur;
    

    // Konstruktor
    public meinProgramm2()
    {
        derBildschirm = new Bildschirm(500,500);
        meinStift = new Stift();
        dieMaus = new Maus();
        dieTastatur = new Tastatur();
       
    }

    // Dienste
    public void fuehreAus()
    {
        // Aktionsteil
     char c = dieTastatur.zeichen();
     
        do{
            if(dieMaus.istGedrueckt && dieTastatur.wurdeGedrueckt('n'))
            {
                meinStift.normal();
                meinStift.runter();
                meinStift.bewegeBis(dieMaus.hPosition(),dieMaus.vPosition());
            }
            
             
                
            
             else if( dieMaus.istGedrueckt && dieTastatur.wurdeGedrueckt('r'))
                {
                  
                        meinStift.radiere();
                        meinStift.zeichneKreis(10);
                        meinStift.runter();
                        meinStift.bewegeBis(dieMaus.hPosition(),dieMaus.vPosition());
                    
                }
            
            else
            {
                meinStift.bewegeBis(dieMaus.hPosition(),dieMaus.vPosition());
                meinStift.hoch();
            }
        
        }
         while(!dieMaus.spezialKlick());
      
        
        
        // Aufraeumen
        meinStift.gibFrei();
        derBildschirm.gibFrei();
        dieMaus.gibFrei();
        dieTastatur.gibFrei();
    }
}

wie kann ich n als variable anlegen???
 
T

Tomate_Salat

Gast
Java:
char einBuchstabe = 'n';
aber du solltest erstmal lernen eine Dokumentatin zu lesen, denn dein Quellcode ist fehlerhaft! [c]wurdeGedrueckt();[/c] erwartet keine Parameter:
Doku hat gesagt.:
Java:
public boolean wurdeGedrueckt()
aber sie liefert einen boolschen (wahrheitswert) zurück und dient nur zur überprüfung, nicht zur auswertung!
Vergleiche mal den Ansatz von Michael... mit deinem SourceCode

MFG

Tomate_Salat
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
J SWING UI Designer und zeichnen Java Basics - Anfänger-Themen 4
luggas89 Mit Jframe live zeichnen Java Basics - Anfänger-Themen 4
K 3D Fläche Zeichnen Java Basics - Anfänger-Themen 2
J Bild auf Hintergrundbild zeichnen Java Basics - Anfänger-Themen 5
R Iterativ zeichnen Java Basics - Anfänger-Themen 1
T Java Swing - Dreieck zeichnen mit verschiedenen Variablen Java Basics - Anfänger-Themen 8
P JFrame, Linien zeichnen, MouseListener Java Basics - Anfänger-Themen 2
KogoroMori21 Mit einer Schleife eine Treppe zeichnen Java Basics - Anfänger-Themen 29
V Speicherzustand zeichnen Java Basics - Anfänger-Themen 0
O Klappt nicht: Ein Panel neu zeichnen Java Basics - Anfänger-Themen 3
CptK Interface Bilder mit Graphics g zeichnen Java Basics - Anfänger-Themen 7
B Java JFrame zeichnen Java Basics - Anfänger-Themen 4
Mosquera f(x)=x² zeichnen Java Basics - Anfänger-Themen 5
J Graphen in Java zeichnen Java Basics - Anfänger-Themen 11
L Anfängerin möchte Linie zeichnen Java Basics - Anfänger-Themen 8
D JPanel mehrere Formen zeichnen Java Basics - Anfänger-Themen 5
S Zeichnen mit Wiederholungen Java Basics - Anfänger-Themen 12
B Wie kann ich Linien rekursiv zeichnen? Java Basics - Anfänger-Themen 4
P Einen String mittig zeichnen? Java Basics - Anfänger-Themen 1
T Koordinatensystem zeichnen - Variablen merken? Quadratische Funktion zeichnen? Java Basics - Anfänger-Themen 5
M Ein Bild durch Objekterzeugung zeichnen Java Basics - Anfänger-Themen 5
W Wie kann ich in Java eine Kurve aus Punkten zeichnen? Java Basics - Anfänger-Themen 25
snipesss Linie zeichnen ohne extra Klasse? Java Basics - Anfänger-Themen 3
C Umrisse von Bilddateien mithilfe Polygonen zeichnen Java Basics - Anfänger-Themen 5
G Aus einem Code ein Sequenzdiagramm zeichnen? Java Basics - Anfänger-Themen 1
K Rechtecke rekursiv zeichnen Java Basics - Anfänger-Themen 20
V Quadrate rekursiv zeichnen Java Basics - Anfänger-Themen 7
B Java Graphen zeichnen - Brauche Hilfe Java Basics - Anfänger-Themen 9
C Schleifenaufgabe - Molekül zeichnen Java Basics - Anfänger-Themen 6
K Ungenauigkeit beim Zeichnen von Funktionen Java Basics - Anfänger-Themen 6
H Linie zeichnen... Java Basics - Anfänger-Themen 16
N Treppe zeichnen Java Basics - Anfänger-Themen 1
M Quadrat zeichnen einfach bitte! Java Basics - Anfänger-Themen 2
P Shape Zeichnen klappt nicht - einlesen der Breite/Höhe schon Java Basics - Anfänger-Themen 1
M in Java zeichnen Java Basics - Anfänger-Themen 2
J JLabel Icon neu zeichnen Java Basics - Anfänger-Themen 2
J Rechteck zeichnen mit Canvas Java Basics - Anfänger-Themen 7
D Zeichnen, Schleifen Java Basics - Anfänger-Themen 7
S Zeichnen , Schleifen Java Basics - Anfänger-Themen 4
S Rechteck zeichnen Java Basics - Anfänger-Themen 2
S Ein Graphics Obejct mehrmals mit denselben Eigenschaften zeichnen lassen?!?!? Java Basics - Anfänger-Themen 4
S Wo beginnt ein Draw String zu zeichnen. Java Basics - Anfänger-Themen 4
S Paint Anwendung: Freihandlinien zeichnen Java Basics - Anfänger-Themen 4
llabusch Layout neu zeichnen lassen Java Basics - Anfänger-Themen 2
A Histogramm zeichnen Java Basics - Anfänger-Themen 2
S Punkt in Java zeichnen Java Basics - Anfänger-Themen 14
E Dreieck zeichnen Java Basics - Anfänger-Themen 3
gamebreiti Methoden JPanel nach clearAll() und add neu zeichnen Java Basics - Anfänger-Themen 1
T Baum mit Turtle zeichnen Java Basics - Anfänger-Themen 2
C Hilfe beim Zeichnen Java Basics - Anfänger-Themen 8
D Haus zeichnen Java Basics - Anfänger-Themen 4
K Methoden Objekt auf JFrame zeichnen Java Basics - Anfänger-Themen 16
H 27 Kreise Zeichnen Java Applet Java Basics - Anfänger-Themen 2
S Problem mit "Zeichnen auf Kommando" Java Basics - Anfänger-Themen 2
M Double Punkte Zeichnen Java Basics - Anfänger-Themen 7
S Funktionen zeichnen Java Basics - Anfänger-Themen 2
2 Bild auf JApplet zeichnen Java Basics - Anfänger-Themen 18
R 2D Grafik zeichnen Java Basics - Anfänger-Themen 4
F Line zeichnen und Werte ändern Java Basics - Anfänger-Themen 6
B Grafik zeichnen Java Basics - Anfänger-Themen 25
B Erste Schritte Weihnachtsbaum zeichnen Java Basics - Anfänger-Themen 6
N Per Button Kreis zeichnen Java Basics - Anfänger-Themen 8
T mehrere Punkte zeichnen ohne löschung Java Basics - Anfänger-Themen 4
J Für 3 Sekunden etwas bestimmtes zeichnen Java Basics - Anfänger-Themen 8
C Kreis nach Mausklick zeichnen Java Basics - Anfänger-Themen 5
C Auf Button-Druck zeichnen Java Basics - Anfänger-Themen 2
R Methoden Zeichnen auf Button-Druck durch Paint-Methode Java Basics - Anfänger-Themen 2
D Klassen Zeichnen von Figuren mittels vorgegebener Klasse Java Basics - Anfänger-Themen 3
J Schachbrett zeichnen Java Basics - Anfänger-Themen 9
J Innerhalb der Border zeichnen Java Basics - Anfänger-Themen 9
J Hoher Speicherverbrauch beim Zeichnen von Images aus einer ArrayList Java Basics - Anfänger-Themen 10
A Blitze mit Linien zeichnen Java Basics - Anfänger-Themen 15
U Kreis um Textfelder zeichnen Java Basics - Anfänger-Themen 4
R Balkendiagramm zeichnen Java Basics - Anfänger-Themen 14
J Bild anhand von Koordinaten zeichnen Java Basics - Anfänger-Themen 10
B GUI Parkplatz zeichnen Java Basics - Anfänger-Themen 10
S Mehrere Zeichnungen zeichnen Java Basics - Anfänger-Themen 16
A Linie Zeichnen Applet mit Double Wert Java Basics - Anfänger-Themen 3
F Image übertragen und zeichnen Java Basics - Anfänger-Themen 8
P Funktion zeichnen Java Basics - Anfänger-Themen 6
Q Zeichnen außerhalb der paint-methode Java Basics - Anfänger-Themen 7
F zeichnen in JPanel Java Basics - Anfänger-Themen 7
T Transparente Bilder mit Graphics zeichnen Java Basics - Anfänger-Themen 17
T Sterne zeichnen Java Basics - Anfänger-Themen 4
M Bilder laden und zeichnen Java Basics - Anfänger-Themen 3
G Polygon in Frame zeichnen Java Basics - Anfänger-Themen 3
S X Zeichnen als Muster ausgeben Java Basics - Anfänger-Themen 5
P Kurven zeichnen Java Basics - Anfänger-Themen 5
I dauerhaftes zeichnen Java Basics - Anfänger-Themen 3
H Zeichnen in JPanel Java Basics - Anfänger-Themen 8
W Funktions-Graphen "zeichnen" Java Basics - Anfänger-Themen 2
J Bilder auf Bilder zeichnen Java Basics - Anfänger-Themen 8
I Rechteck Zeichnen Java Basics - Anfänger-Themen 9
W Zeichnen in Swing Java Basics - Anfänger-Themen 7
N Linie auf spezielle Area zeichnen Java Basics - Anfänger-Themen 9
K Auf JPanel Zeichnen Java Basics - Anfänger-Themen 8
E Frame neu Zeichnen Java Basics - Anfänger-Themen 3
D Problem beim Zeichnen von "Das Haus vom Nikolaus" Java Basics - Anfänger-Themen 10
M Farbiges Rechteck zeichnen Java Basics - Anfänger-Themen 2
M Zeichnen in Java Java Basics - Anfänger-Themen 4

Ähnliche Java Themen

Neue Themen


Oben