#1 12. November 2010 while problem ich denke das mir hier einige sicherlich weiterhelfen können ich bin ziemlich neu was das gebiet java angeht, was heißen soll das auch ne kurze erklärung was ihr da gemacht habt oder wo das problem war ganz nice wäre; ich will nicht das andere etwas für mich lösen.... ich will nur herausfinden wies machbar wird kommen wir dann zum eigentlichen problem... ich hab in java einen Stift, ein Fenster und die Maus "gemacht" (der stift hat funktionen wie stift.hoch(); = der stift wird angehoben , stift.runter(); = der stift wird abgesetzt und stift.bewegeBis(...) und sowas) nun hatte ich vor das ganze so zu machen, das der Stift der maus folgt.... was ich im endeffekt so versucht habe zu lösen Code: public void fuehreAus() { stift.bewegeBis(maus.hPosition(),maus.vPosition()); stift.runter(); while (maus.istGedrueckt()) { stift.bewegeBis(maus.hPosition(),maus.vPosition()); } } das ganze will aber nicht so recht, sprich es öffnet sich ein fenster, aber wenn ich hinenklicke und die maus bewege tut sich nichts... was ich etwas komisch finde, ist das wenn ich folgendes schreibe Code: while (! maus.istGedrueckt()) { stift.bewegeBis(maus.hPosition(),maus.vPosition()); } also "wenn die maus nicht gedrückt ist", läuft alles , also der stift malt der maus nach ohne das ich klicke.... ich wills aber eigentlich andersrum, weils so eher weniger sinn macht schnelle hilfe mit kurzer erklärung wär klasse danke schonmal + Multi-Zitat Zitieren
#2 12. November 2010 AW: while problem lasst du die Methode fuehreAus() in deiner Main in einer Endlosschleife laufen? Falls du das nicht tust wundert mich das Ergebnis nicht. Dein Programm überprüft so ein mal ob deine Maus geklickt ist. Dies ist ja nicht der Fall und das wars dann mit der Schleife. + Multi-Zitat Zitieren
#3 12. November 2010 AW: while problem fuehreAus(); steht inner main hier mal der komplette code Code: package maus; import basis.*; public class Maus1 { private Fenster fenster; private Stift stift; private Maus maus; public void gibFrei(){ stift.gibFrei(); maus.gibFrei(); fenster.gibFrei(); } public Maus1() { /* Bereitstellen, Initialisierungsteil */ fenster = new Fenster(); stift=new Stift(); maus = new Maus(); } public void fuehreAus() { /*Arbeiten, Aktionsteil */ stift.bewegeBis(maus.hPosition(),maus.vPosition()); stift.runter(); while (!maus.istGedrueckt()) { stift.bewegeBis(maus.hPosition(),maus.vPosition()); } } } + Multi-Zitat Zitieren
#4 12. November 2010 AW: while problem genau das was ich vermutet hatte. Bastel um Code: public void fuehreAus() { /*Arbeiten, Aktionsteil */ stift.bewegeBis(maus.hPosition(),maus.vPosition()); stift.runter(); while (!maus.istGedrueckt()) { stift.bewegeBis(maus.hPosition(),maus.vPosition()); } eine Endlosschleife oder bau dir ein timer event, dass diesen code alle 10 ms ausführt + Multi-Zitat Zitieren
#5 12. November 2010 AW: while problem klappt nicht genauso wenig versteh ich den sinn dahinter den befehl darauf zu warten das die maus geklickt wird ständig zu weiderholen?! + Multi-Zitat Zitieren
#6 12. November 2010 AW: while problem Ich hätte jetzt behauptet, dass du die ganze Sache in das MouseMoved Event geschrieben hast, anstatt in das MouseDragged. Also im Mouse Listener + Multi-Zitat Zitieren
#8 12. November 2010 AW: while problem dein programm besteht doch nicht nur aus der oben genannten klasse oder? denn dann würd ja gar nichts passieren irgendwo musst du ja abfragen ob geklickt wird und wo die maus sich befindet + Multi-Zitat Zitieren
#9 12. November 2010 AW: while problem es besteht aus 2 klassen aber in der einen steht nichts besonderes.. Code: package maus; public class Maus2 { public static void main(String[] args) { Maus1 meinMaus1 = new Maus1(); meinMaus1.fuehreAus(); } } + Multi-Zitat Zitieren
#10 12. November 2010 AW: while problem irgendwo wird ja abgefragt wo sich die maus befindet wohl in der klasse Maus da ist wahrscheinlich das Problem + Multi-Zitat Zitieren
#11 12. November 2010 AW: while problem wie gesagt, dass ist alles was in der klasse steht Code: package maus; import basis.*; public class Maus1 { private Fenster fenster; private Stift stift; private Maus maus; public void gibFrei(){ stift.gibFrei(); maus.gibFrei(); fenster.gibFrei(); } public Maus1() { /* Bereitstellen, Initialisierungsteil */ fenster = new Fenster(); stift=new Stift(); maus = new Maus(); } public void fuehreAus() { /*Arbeiten, Aktionsteil */ stift.bewegeBis(maus.hPosition(),maus.vPosition()); stift.runter(); while (!maus.istGedrueckt()) { stift.bewegeBis(maus.hPosition(),maus.vPosition()); } } } + Multi-Zitat Zitieren
#13 14. November 2010 AW: while problem und wo ist da die Main? Poste mal die Klasse, die du ausführst. + Multi-Zitat Zitieren
#14 14. November 2010 AW: while problem ich hab 2 klassen, immernoch Klasse 1 Spoiler Code: package maus; public class Maus2 { public static void main(String[] args) { Maus1 meinMaus1 = new Maus1(); meinMaus1.fuehreAus(); } } Klasse2 Spoiler Code: package maus; import basis.*; public class Maus1 { private Fenster fenster; private Stift stift; private Maus maus; public void gibFrei(){ stift.gibFrei(); maus.gibFrei(); fenster.gibFrei(); } public Maus1() { /* Bereitstellen, Initialisierungsteil */ fenster = new Fenster(); stift=new Stift(); maus = new Maus(); } public void fuehreAus() { /*Arbeiten, Aktionsteil */ stift.bewegeBis(maus.hPosition(),maus.vPosition()); stift.runter(); while (maus.istGedrueckt()) { stift.bewegeBis(maus.hPosition(),maus.vPosition()); } } } Klasse 1 führe ich aus.... + Multi-Zitat Zitieren
#15 14. November 2010 AW: while problem Poste bitte mal dein ganzes Programm, ich habe irgendwie den verdacht, dass da gar nichts so richtig zusammen passt. Bevor wir hier weiter Rätsel raten. ZIP/RAR -> xup.in + Multi-Zitat Zitieren
#16 14. November 2010 Zuletzt von einem Moderator bearbeitet: 14. April 2017 AW: while problem ich hoffe mal das klappt so alles Download: http:statsshare-linksbiz796649d45f976d5b7301915c32623319gif.gif | www.xup.in ich hab das programm mit eclipse geschrieben, der Stift folgt Maus ordner in der rar müsste dann in den eclipse ordner rein, und die basis für den stift, (auch in dem stift folgt maus ordner glaub ich) müsste in java/jre6/lib/ext oder sowas hoffe ihr kriegt das gebacken, wie gesagt, bin neu auf dem gebiet und kenn mich da jetz noch nicht so aus + Multi-Zitat Zitieren
#17 14. November 2010 AW: while problem Ein Versuch wäre: Code: while (maus.istGedrueckt()) { stift.bewegeBis(maus.hPosition(),maus.vPosition()); } Diesen Teil packst du in eine Endlosschleife, oder am besten so: Code: while (!maus.istRechtsGedrucket()) { while (maus.istGedrueckt() && !maus.istRechtsGedrucket()) { stift.bewegeBis(maus.hPosition(),maus.vPosition()); } } Dann solltest du mit der rechten Maustatse alles beenden können und mit der linken Maustaste zeichnen. Falls das nicht geht, dann wird das Problem wohl in der Implementierung der Maus FUnktionen liegen. greez + Multi-Zitat Zitieren
#18 14. November 2010 AW: while problem also soweit hat sich das problem irgendwie von selbst behoben ?( naja egal hauptsache es läuft.... nur läuft alles etwas sehr komisch und ich versteh das programm nicht ich habs jetz so hinbekommen, das der stift zeichnet wenn ich klicke, das problem jetzt war, dass wenn ich mit meiner maus weitergegangen bin und dann wieder geklickt habe er selbstverständlich eine linie dorthin gezogen hat wo die maus war, das probelm hab ich auch hinbekommen, jetzt hab ich mich an den radierer gesetzt und das ganze so versucht: Code: while(true){ while (maus.istRechtsGedrueckt()) { stift.setzeLinienBreite(50); stift.radiere(); stift.bewegeBis(maus.hPosition(),maus.vPosition()); stift.setzeLinienBreite(1); stift.normal(); } while (maus.istGedrueckt()) { stift.bewegeBis(maus.hPosition(),maus.vPosition()); } while (!maus.istGedrueckt()) { stift.hoch(); stift.bewegeBis(maus.hPosition(),maus.vPosition()); stift.runter(); } ich mein der radierer funktioniert..... aber nur wenn ich rechte UND linke maustaste drücke, was ich sehr verwirrend finde weil ich ja eigentlich nur .istRechtsGedrückt geschrieben habe ?( + Multi-Zitat Zitieren