wie durch klicken regeln dass nächster "case" auge

Status
Nicht offen für weitere Antworten.

Aurora

Mitglied
es sollten eigentlich pro klicken mit der maus die striche gezeichnet werde, aber es wird immer gleich alles gezeichnet und dann nichts mehr, wenn man das Fenster eine weile verdeckt hat.
Hier der Code:


Code:
import java.awt.*;
import java.applet.*;
import java.awt.Color;

public class Nikolaus1 extends Applet
 { 
	int i = 1;
   public void paint(Graphics g)
    { 
	   i++;
	   Color rot = new Color(255, 0, 0);
	   	g.setColor(rot);
	   switch(i) {
	   	case 1:
	   		g.drawLine(0,100,0,200);
	   	case 2:
		    g.drawLine(0,100,0,200);
		    g.drawLine(0,100,100,100);
	   	case 3:
	   		g.drawLine(0,100,0,200);
	 	    g.drawLine(0,100,100,100);
	 	    g.drawLine(0,100,100,200);
	   	case 4:
	   		g.drawLine(0,100,0,200);
	   		g.drawLine(0,100,100,100);
	   		g.drawLine(0,100,100,200);
	   		g.drawLine(0,200,100,200);
	   	case 5:
	   		g.drawLine(0,100,0,200);
	   		g.drawLine(0,100,100,100);
	 	   	g.drawLine(0,100,100,200);
	 	   	g.drawLine(0,200,100,200);
	 	   	g.drawLine(100,100,100,200);
	   	case 6:
	   		g.drawLine(0,100,0,200);
	   		g.drawLine(0,100,100,100);
	 	   	g.drawLine(0,100,100,200);
	 	   	g.drawLine(0,200,100,200);
	 	   	g.drawLine(100,100,100,200);
	   		g.drawLine(0,200,100,100);
	   	case 7:
	   		g.drawLine(0,100,0,200);
	   		g.drawLine(0,100,100,100);
	 	   	g.drawLine(0,100,100,200);
	 	   	g.drawLine(0,200,100,200);
	 	   	g.drawLine(100,100,100,200);
	   		g.drawLine(0,200,100,100);
	   		g.drawLine(0,100,50,0);
	   	case 8:
	   		g.drawLine(0,100,0,200);
	   		g.drawLine(0,100,100,100);
	 	   	g.drawLine(0,100,100,200);
	 	   	g.drawLine(0,200,100,200);
	 	   	g.drawLine(100,100,100,200);
	   		g.drawLine(0,200,100,100);
	   		g.drawLine(0,100,50,0);
		 	g.drawLine(50,0,100,100);		 	
	   }
	   
    }
   

  
   
 }

wie geht das, dass es durch das klicken weiter gezeichnet wird? (Bin blutiger Anfänger)
 
S

SlaterB

Gast
wie oft soll man es noch sagen?:
das Klicken hat mit dem paint nichts zu tun, es kann 10x gepaintet werden ohne dass irgendjemand klickt,

in den anderen Topic ist wunderbar erklärt, wie man auf einen Mausklick reagiert
und außerdem noch, wie man das Zeichnen einfach und sauber gestaltet

> Color rot = new Color(255, 0, 0);

Rot gibts schon:
Color rot = Color.RED;
 
S

SlaterB

Gast
oh stimmt,
und wenn i 9 ist, dann i auf 1 zurücksetzen
i++;
if (i >= 9) {
i= 1;
}
 
S

SlaterB

Gast
wenn dir break; zu case nichts sagt, dann lieber nicht so erstaunt fragen ;)

oder ohne break und Wiederholung:
Code:
switch(i) {
         case 8:
          g.drawLine(50,0,100,100);
         case 7:
            g.drawLine(0,100,50,0);
         case 6:
            g.drawLine(0,200,100,100);
         case 5:
             g.drawLine(100,100,100,200);
         case 4:
            g.drawLine(0,200,100,200);
         case 3:
           g.drawLine(0,100,100,200);
         case 2:
          g.drawLine(0,100,100,100);
         case 1:
            g.drawLine(0,100,0,200);
      }
 
M

maki

Gast
Leroy42 hat gesagt.:
maki hat gesagt.:
Code:
break;

Was soll das denn jetzt? :shock:
Ehrlich?

Hab mir nix unter
Titel: wie durch klicken regeln dass nächster "case" auge
vorstellen können, aber irgendwie sind da keine breaks drinnen im switch case.

Was der Fragesteller wissen will oder was der Code da machen soll bleibt mir unveständlich...
 

Leroy42

Top Contributor
Ach so, maki meinte, daß die einzelnen case-Anweisungen jeweils mit break; enden sollten.

Stimmt! Aber dadurch wird Gast sein Problem auch nicht lösen können.

Da war SlaterB's Beitrag schon hilfreicher!
 
K

Körby

Gast
Das Problem wird vielleicht nicht durch break; gelöst (vielleicht aber doch wenn alles andere richtig ist), aber wenn nicht am Ende jeder case-Anweisung ein break; steht, wird immer alles gezeichnet, auch wenn der restliche Code richtig ist.
 

Aurora

Mitglied
wie schaffe ich es aber, dass die variable dadurch hochgezählt wird, dass man aus dem fenster herausklickt und dann wieder hineinklickt. Es hat weniger mit dem klicken zu tun, es geht darum, dass das bild neu gezeichnet wird (automatisch) und dies soll ich mir auf irgendeine Weise zu Nutze machen, um zu erreichen, dass sich eben diese variable hochzählt - von selbst, wenn ich es recht verstanden habe aber nur nachdem der Browser das bild aktualisiert hat
 

ARadauer

Top Contributor
hast du slaters Beitrag gelesen?

"das Klicken hat mit dem paint nichts zu tun, es kann 10x gepaintet werden ohne dass irgendjemand klickt,"

du fügst zu einem Aplett einen MouseListener hinzu, das kann ruhig das Applet selbst sein, dazu muss das Interface MouseListener implementiert werden.

es gibt eine init Funktion von Applet, die kannst du verwenden mun den Listener einzufügen.

aja, ohne break gehts natürlich nicht.

so zum beispiel:
Code:
import java.awt.*; 
import java.applet.*; 
import java.awt.Color; 
import java.awt.event.MouseEvent;
import java.awt.event.MouseListener;

public class Nikolaus extends Applet implements MouseListener{
	
	public int i;
	
   @Override
	public void init() {
		super.init();
		i = 1; 
		this.addMouseListener(this);
	}

   public void paint(Graphics g) 
    { 
      
      Color rot = new Color(255, 0, 0); 
         g.setColor(rot); 
      switch(i) { 
         case 1: 
            g.drawLine(0,100,0,200); 
            break;
         case 2: 
          g.drawLine(0,100,0,200); 
          g.drawLine(0,100,100,100);
          break;
         case 3: 
            g.drawLine(0,100,0,200); 
           g.drawLine(0,100,100,100); 
           g.drawLine(0,100,100,200);
           break;
         case 4: 
            g.drawLine(0,100,0,200); 
            g.drawLine(0,100,100,100); 
            g.drawLine(0,100,100,200); 
            g.drawLine(0,200,100,200); 
            break;
         case 5: 
            g.drawLine(0,100,0,200); 
            g.drawLine(0,100,100,100); 
             g.drawLine(0,100,100,200); 
             g.drawLine(0,200,100,200); 
             g.drawLine(100,100,100,200); 
             break;
         case 6: 
            g.drawLine(0,100,0,200); 
            g.drawLine(0,100,100,100); 
             g.drawLine(0,100,100,200); 
             g.drawLine(0,200,100,200); 
             g.drawLine(100,100,100,200); 
            g.drawLine(0,200,100,100); 
            break;
         case 7: 
            g.drawLine(0,100,0,200); 
            g.drawLine(0,100,100,100); 
             g.drawLine(0,100,100,200); 
             g.drawLine(0,200,100,200); 
             g.drawLine(100,100,100,200); 
            g.drawLine(0,200,100,100); 
            g.drawLine(0,100,50,0); 
            break;
         case 8: 
            g.drawLine(0,100,0,200); 
            g.drawLine(0,100,100,100); 
             g.drawLine(0,100,100,200); 
             g.drawLine(0,200,100,200); 
             g.drawLine(100,100,100,200); 
            g.drawLine(0,200,100,100); 
            g.drawLine(0,100,50,0); 
          g.drawLine(50,0,100,100);  
          break;
      } 
       
    }
@Override
public void mouseClicked(MouseEvent e) {
	i++;
	this.repaint();
	
}
@Override
public void mouseEntered(MouseEvent e) {
	// TODO Auto-generated method stub
	
}
@Override
public void mouseExited(MouseEvent e) {
	// TODO Auto-generated method stub
	
}
@Override
public void mousePressed(MouseEvent e) {
	// TODO Auto-generated method stub
	
}
@Override
public void mouseReleased(MouseEvent e) {
	// TODO Auto-generated method stub
	
} 
    

  
    
}


lustig! es funktioniert!!!
 

Schandro

Top Contributor
ohne break gehts nicht nicht, sondern viel einfacher^^

Code:
      switch(i) {
         case 8:
            g.drawLine(0,100,0,200);
         case 7:
          g.drawLine(0,100,100,100);
         case 6:
           g.drawLine(0,100,100,200);
         case 5:
            g.drawLine(0,200,100,200);
         case 4:
             g.drawLine(100,100,100,200);
         case 3:
            g.drawLine(0,200,100,100);
         case 2:
            g.drawLine(0,100,50,0);
         case 1:
          g.drawLine(50,0,100,100);
      }
 
S

SlaterB

Gast
hmm du Schlauberger, das habe ich doch schon gepostet und vor allem richtig,
bei dir wird alles falschrum gemalt dein case 1 entspricht nicht dem ursprünglichen mit break

--------

@Aurora

> Es hat weniger mit dem klicken zu tun, es geht darum, dass das bild neu gezeichnet wird (automatisch) und dies soll ich mir auf irgendeine Weise zu Nutze machen

in diesem Fall liegst du mit dem paint schon recht gut im Spiel,

du musst aber verstehen, dass niemand so genau kennt, was du da unter 'automatisch aktualisieren/ Browser mal/ kein Mausklick/ irgendwie aktualisiert' alles meinst oder nicht meinst,
so funktioniert programmieren nicht, versuche nochmal in deinem Lehrbuch nachzulesen/ den Aufgabensteller zu fragen,
was es so an einzelnen Ereignissen gibt, wann wer wie warum auf die Umgebung reagiert,
erst wenn solche Grundlagen geklärt sind, kann man dann Aufgaben damit bestreiten
 

Aurora

Mitglied
@ARadauer

danke für die Hilfe! Die Sachen die du da am Schluss gemacht hast hatten wir nicht mal ansatzweise im Kurs. Ich bin auf seinen Lösungsweg gespannt und werde ihn dann auf jeden Fall auch reinstellen, vielleicht versteht ihr dann den Arbeitsauftrag :)

Es war einfach unverschämt von dem Lehrer die Aufgabe so unklar zu stellen, wir haben ja noch überhaupt keine Grundkenntnisse, wir fangen ja gerade erst an. Mein Problem lag Tagelang einfach daran, dass ich keine Ahnung hatte wie da überhaupt ein möglicher Lösungsweg gewesen wäre, daher war ich voll und ganz auf Hilfe aus dem Forum angewiesen.

Wie gesagt - die Lösung wie er sie sich vorgestellt hat kommt noch :)

Gruß Aurora
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
yoskaem Text Color durch Klicken eines Buttons in anderer Activity ändern Java Basics - Anfänger-Themen 2
I JPanel zeigt nichts an durch Klicken auf das Button. Java Basics - Anfänger-Themen 20
T Ich brauche eine Schleife die eine beliebige Zahl so lange durch 10 teilt bis zur Null Java Basics - Anfänger-Themen 5
X wie bekomme ich durch Eingabeaufforderung definierte double in einen Befehl, welcher 3 erwartete double braucht? Java Basics - Anfänger-Themen 3
T float soll durch schleife die größte mögliche Zahl herausfinden, Ausgabe ist aber "Infinity" Java Basics - Anfänger-Themen 1
H Counter durch gepresste Taste nur auf 1 erhöhen und nicht durchzählen lassen Java Basics - Anfänger-Themen 7
T Eingabe durch eine Zahl dividieren nachgucken? Java Basics - Anfänger-Themen 4
G Programm läuft durch, ohne Eingabe aus dem Chat abzuwarten Java Basics - Anfänger-Themen 4
S IntelliJ geht alle Klassen durch Java Basics - Anfänger-Themen 9
A 1 Leerzeichen durch zwei Leerzeichen ersetzen Java Basics - Anfänger-Themen 4
E Durch Muster in Array iterieren Java Basics - Anfänger-Themen 3
Thomas06 Wie kann man mithilfe von boolean herausfinden ob eine zahl durch 5 und 7 teilbart ist ? Java Basics - Anfänger-Themen 7
A JTextArea entfernen und durch neuen Text ersetzen Java Basics - Anfänger-Themen 8
B Den Dateipfad einer Java Datei durch Code in Selbiger finden? Java Basics - Anfänger-Themen 10
T Variable durch Action Listener ändern Java Basics - Anfänger-Themen 2
B Attribute eines Objekts einer Klasse durch statische Methode einer 2. Klasse ändern? Java Basics - Anfänger-Themen 32
Agent4nobody Programmstart durch aufruf des interpreters funktioniert nicht Java Basics - Anfänger-Themen 14
obiwanke Ziffern durch ASCII Character ersetzen Java Basics - Anfänger-Themen 8
J Speichern von zwei Variablen durch Auslesen aus einem Numberfield Java Basics - Anfänger-Themen 2
sserio Java Fx, wie erstellt man einen EventHandler, der durch das Drücken eines Button Texte in eine Table view einfügt Java Basics - Anfänger-Themen 17
S Durch HashMap iterieren Java Basics - Anfänger-Themen 8
A Wenn eine Zahl durch 7 teilbar ist, soll statt der Zahl ein ‘*‘ angezeigt werden. java? Java Basics - Anfänger-Themen 47
K mit <<1 kann man mal 2 machen, mit >>2 geteilt durch zwei und was bewirkt <<<1 und >>>1? Java Basics - Anfänger-Themen 5
A Verarbeiten einer Excel Datei durch das java-Programm Java Basics - Anfänger-Themen 3
C In String, Buchstaben ersetzen durch andere Buchstaben Java Basics - Anfänger-Themen 26
F Initialisieren eines Web-Mp3 Players in Tabs durch "booleans" erst wenn Tab geöffnet wird ...? Java Basics - Anfänger-Themen 1
W Werte durch Konsole einlesen Java Basics - Anfänger-Themen 10
C if-Konstrukt durch switch-Konstrukt ersetzen Java Basics - Anfänger-Themen 14
OZAN86 For Schleife von 1-50 die Zahlen werden durch ein Komma getrennt Java Basics - Anfänger-Themen 10
Bademeister007 Operatoren Alle Zahlen einer ArrayList die durch 5 teilbar ist Java Basics - Anfänger-Themen 2
Y Wie kann ich Konsoleneingaben durch den Scanner mit JUnit 4 testen? Java Basics - Anfänger-Themen 1
N for Schleife durch Rekursion ersetzen Java Basics - Anfänger-Themen 6
N Probleme beim printen von Arrays durch for Schleife Java Basics - Anfänger-Themen 3
L Iterieren durch eine ArrayList. Integer Array wird übergeben Java Basics - Anfänger-Themen 17
J Eine Position im String durch einen Integer - Wert teilen Java Basics - Anfänger-Themen 5
F Methoden Bitte Helft mir meinen Fehler zu finden. Möchte in diesem Bankenprogramm durch die Konsoleneingabe auswählen welches Konto reduziert und welches erhö Java Basics - Anfänger-Themen 17
E 2D Array - char durch die Matrix "wandern" lassen Java Basics - Anfänger-Themen 7
E Objekt durch Benutzer über Konsole erzeugen - Java Java Basics - Anfänger-Themen 3
F Methode für Teilbarkeit durch 5 tut was anderes.... Java Basics - Anfänger-Themen 3
H Aufruf von Methoden durch Methoden Java Basics - Anfänger-Themen 3
H Wie kann ich durch Methoden definiren? Java Basics - Anfänger-Themen 8
O Mehrfache Scanner-Eingabe durch Komma getrennt Java Basics - Anfänger-Themen 6
M String array durch Eingabe begrenzen Java Basics - Anfänger-Themen 7
J Dynamisches Array durch split()-Funktion? Java Basics - Anfänger-Themen 3
O Typparameter durch Wildcards verallgemeinern Java Basics - Anfänger-Themen 3
G Benutzereingaben durch Zeilenumbruch trennen und in Array individueller Größe speichern Java Basics - Anfänger-Themen 20
B Import Tabelle - Struktur durch User einstellbar Java Basics - Anfänger-Themen 4
K Durch eine Text eingabe etwas Ausführen Java Basics - Anfänger-Themen 5
T Konsolenscanner startet nicht durch Aufruf von Actionlistener Java Basics - Anfänger-Themen 4
A OOP Variable in anderer Klasse durch Methode aufrufen und einer anderen Variable gleichsetzen Java Basics - Anfänger-Themen 2
F Ein Datum (int) durch Methode als String formatieren Java Basics - Anfänger-Themen 2
B OOP While Schleife läuft Endlos durch externen aufruf Java Basics - Anfänger-Themen 2
D While Schleife bei Bedarf durch Eingabe stoppen Java Basics - Anfänger-Themen 15
CptK Interface Curser durch Bild ersetzen & MouseListner Java Basics - Anfänger-Themen 2
H OOP eine Zahl immer weiter durch 2 teilen Java Basics - Anfänger-Themen 15
I Null-Überprüfung durch Lambda-Expressions abkürzen Java Basics - Anfänger-Themen 8
W Teilstring durch Teilstring mittels StringBuilder ersetzen Java Basics - Anfänger-Themen 7
N Denksportaufgabe durch Algorithmus lösen Java Basics - Anfänger-Themen 2
H Array mit Zahlen die durch 3 und 5 teilbar sind erstellen Java Basics - Anfänger-Themen 13
D Interface Frame doppelt durch Aufruf der GUI Klasse Java Basics - Anfänger-Themen 1
J Die Zahl herausfinden die durch 2 - 30 Teilbar ist... Java Basics - Anfänger-Themen 17
M For-Schleife durch zwei versch. Variablen begrenzen Java Basics - Anfänger-Themen 27
W JLabel, Farbe durch Listener ändern Java Basics - Anfänger-Themen 6
T Extrahiertes Objekt durch Getter bekommen Java Basics - Anfänger-Themen 2
R Eine Schleife durch eine Methode schließen? Java Basics - Anfänger-Themen 4
N Operatoren Suchen nach einer bestimmten Eingabe (durch Scanner) Java Basics - Anfänger-Themen 7
S For-Schleife durch "ESC" verlassen? Java Basics - Anfänger-Themen 2
C char in String suchen und durch anderen String ersetzen Java Basics - Anfänger-Themen 2
T static String Variable wird nur beim ersten aufruf durch eine Funktion geändert. Java Basics - Anfänger-Themen 16
V Durch 0 teilen Java Basics - Anfänger-Themen 2
V Durch Methode Objekt löschen Java Basics - Anfänger-Themen 2
D Klasse durch eine Schleife wiederholen Java Basics - Anfänger-Themen 1
J Wie lege ich eine durch Random ausgesuchte Zahl in ein Array? Java Basics - Anfänger-Themen 3
S button kommt durch bild Java Basics - Anfänger-Themen 13
M Ein Bild durch Objekterzeugung zeichnen Java Basics - Anfänger-Themen 5
W Objektname durch Tastaturbefehl eingeben Java Basics - Anfänger-Themen 7
K ArrayList durch ArrayList ersetzen Java Basics - Anfänger-Themen 5
G Objektübergabe durch Parameter Java Basics - Anfänger-Themen 3
P Erste Schritte durch MenuBar verschiedene Fenster öffnen Java Basics - Anfänger-Themen 2
T Jlabel durch Text in 2 anderen Jlabels sichtbar machen Java Basics - Anfänger-Themen 4
T Threads Durch threads gestartete Prozesse killen Java Basics - Anfänger-Themen 2
M ArrayList durch OutputStream in Datei Java Basics - Anfänger-Themen 9
K arraygröße durch variablen Konstruktor? Java Basics - Anfänger-Themen 7
F Erste Schritte Hausaufgaben-Prob. - Iterative Prog. Zahlen aufsummieren, wenn durch k>0 teilbar. Java Basics - Anfänger-Themen 5
T Input/Output Programm beenden durch Eingabe Java Basics - Anfänger-Themen 1
K Tiefen- und Breitensuche beim Baum durch Stack und Warteschlange Java Basics - Anfänger-Themen 1
Ponychan95 Erste Schritte Switch fällt immer bis zum default durch Java Basics - Anfänger-Themen 4
J Warum wird Array durch Methode ohne Rückgabewert verändert? Java Basics - Anfänger-Themen 5
N Durch Objekte iterieren? Java Basics - Anfänger-Themen 3
J Durch 2-Dimensionales Array "bewegen" will nicht so recht hinhauen Java Basics - Anfänger-Themen 2
B Durch eine Liste von Strings laufen Java Basics - Anfänger-Themen 6
D javacode durch Html ausfuehren Java Basics - Anfänger-Themen 13
K Durch ArrayList laufen Java Basics - Anfänger-Themen 8
X Erste Schritte Lernen durch Videoreihe Java Basics - Anfänger-Themen 35
M Möglich? Methode aufrufen deren Bezeichner zur Laufzeit durch einen überg. String festgelegt wird Java Basics - Anfänger-Themen 3
T Best Practice JUnit: Wie Klassen durch Stubs/Mockups ersetzen Java Basics - Anfänger-Themen 7
H Text durch Checkbox erscheinen lassen Java Basics - Anfänger-Themen 2
J Datensätze aus Txt Datei auslesen - Datensätze durch stöbern Java Basics - Anfänger-Themen 5
Ananaskirsche Input/Output Platzhalter durch String in yml-Datein ersetzen Java Basics - Anfänger-Themen 5
F Speicherlast mehrere GB durch kleine png files? Java Basics - Anfänger-Themen 1

Ähnliche Java Themen

Neue Themen


Oben