Swing repaint funktioniert nur manchmal?

Troubardix

Mitglied
Hallo,

ich gebe zu der Source-Code ist etwas suboptimal...( ich bin neu in der OO-Welt )

Trotzdem verstehe ich den Repaint nicht !!!

Im Beispiel habe ich zwei Buttoms definiert , Knopf3 und Knopf4.

Bei Knopf3 wird einmal 'gewürfelt', ein 'repaint()' wird ausgeführt und der rote Punkt wird neu gesetzt.
- Das funktioniert so wie ich es will !!!

Bei Knopf4 wird 100-mal gewürfelt, in der Schleife mach ich einen repaint(), ich hätte hier gerne das der rote Punkt animiert 100-mal angezeigt wird.
Leider wird die Schleife 100-mal durchlaufen, ohne das der rote Punkt neu gesetzt wird.
- Warum ????
Erst wenn die Schleife abgearbeitet ist wird das Bild neu aufgebaut..

Hat hier jemand die Zeit sich das anzusehen ???

Ich danke der Tipps !!

Gruß NOOB

[Java]
import java.awt.Color;
import java.awt.Graphics;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.util.Random;

import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JPanel;



public class monopoly2 extends JPanel {


static int Hoehe;
static int Breite;

static int Wurf = 6;
static int Wurf2 = 6;

static int AktPlatz = 40;





public static void main(String[] a) {


final JFrame f = new JFrame();

Hoehe = 540;
Breite = 580;

JButton Knopf3, Knopf4, Knopf5 ;


Knopf3 = new JButton("Würfel");
Knopf4 = new JButton("100 mal");
Knopf5 = new JButton("Ausgang");


Knopf3.setBounds(20,555,96,26);
Knopf4.setBounds(20,505,96,26);
Knopf5.setBounds(1100,555,96,26);


f.add(Knopf3);
f.add(Knopf4);
f.add(Knopf5);




Knopf5.addActionListener(new ActionListener() {

public void actionPerformed(ActionEvent e) {
System.exit(1);
}
});




Knopf3.addActionListener(new ActionListener() {


public void actionPerformed(ActionEvent e) {

Random r = new Random();
Wurf = 1 + Math.abs(r.nextInt()) % 6;
Wurf2 = 1 + Math.abs(r.nextInt()) % 6;

AktPlatz += (Wurf + Wurf2);

f.repaint(); // !!! Dieser Repaint funktioniert, das Bild wird neu aufgebaut der rote Punkt wandert
}
});

Knopf4.addActionListener(new ActionListener() {


public void actionPerformed(ActionEvent e) {


for (int i = 1; i < 100; i++){


f.repaint(); // Dieser Repaint funktioniert nicht, ohne das das Bild neu aufgebaut wird, wird die Schleife durchlaufen

Random r = new Random();

Wurf = 1 + Math.abs(r.nextInt()) % 6;
Wurf2 = 1 + Math.abs(r.nextInt()) % 6;

AktPlatz += (Wurf + Wurf2);


if (AktPlatz > 40)
{
AktPlatz -= 40;
}


try {
System.out.println("Vor wait");

f.repaint();

Thread.sleep(44);

f.repaint();

System.out.println("Hinter wait");

} catch (InterruptedException e2) {

System.out.println("catch");
}


f.repaint();


}
}}
);




f.setSize(1280, 690);


f.add(new monopoly2());



f.setBackground(Color.black);

f.setVisible(true);

System.out.println("IgnRepaint: " + f.getIgnoreRepaint());



}





public void paintComponent(Graphics g) {


int xbrett = 250;
int ybrett = 50;


g.setColor(Color.green);
g.fillRoundRect (xbrett, ybrett, Breite, Hoehe, 15, 15);
System.out.println("g: " + g );

g.setColor(Color.black);
g.drawLine(xbrett + 120, ybrett, xbrett + 120, ybrett + Hoehe);
g.drawLine(xbrett + 460, ybrett, xbrett + 460, ybrett + Hoehe);
g.drawLine(xbrett, ybrett + 114, xbrett + Breite, ybrett + 114);
g.drawLine(xbrett, ybrett + 426, xbrett + Breite, ybrett + 426);

g.drawLine(xbrett, ybrett + 149, xbrett + 120, ybrett + 149);
g.drawLine(xbrett, ybrett + 183, xbrett + 120, ybrett + 183);
g.drawLine(xbrett, ybrett + 218, xbrett + 120, ybrett + 218);
g.drawLine(xbrett, ybrett + 253, xbrett + 120, ybrett + 253);
g.drawLine(xbrett, ybrett + 287, xbrett + 120, ybrett + 287);
g.drawLine(xbrett, ybrett + 322, xbrett + 120, ybrett + 322);
g.drawLine(xbrett, ybrett + 357, xbrett + 120, ybrett + 357);
g.drawLine(xbrett, ybrett + 391, xbrett + 120, ybrett + 391);

g.drawLine(xbrett + 460, ybrett + 149, xbrett + Breite, ybrett + 149);
g.drawLine(xbrett + 460, ybrett + 183, xbrett + Breite, ybrett + 183);
g.drawLine(xbrett + 460, ybrett + 218, xbrett + Breite, ybrett + 218);
g.drawLine(xbrett + 460, ybrett + 253, xbrett + Breite, ybrett + 253);
g.drawLine(xbrett + 460, ybrett + 287, xbrett + Breite, ybrett + 287);
g.drawLine(xbrett + 460, ybrett + 322, xbrett + Breite, ybrett + 322);
g.drawLine(xbrett + 460, ybrett + 357, xbrett + Breite, ybrett + 357);
g.drawLine(xbrett + 460, ybrett + 391, xbrett + Breite, ybrett + 391);

g.drawLine(xbrett + 158, ybrett, xbrett + 158, ybrett + 114);
g.drawLine(xbrett + 196, ybrett, xbrett + 196, ybrett + 114);
g.drawLine(xbrett + 233, ybrett, xbrett + 233, ybrett + 114);
g.drawLine(xbrett + 271, ybrett, xbrett + 271, ybrett + 114);
g.drawLine(xbrett + 309, ybrett, xbrett + 309, ybrett + 114);
g.drawLine(xbrett + 347, ybrett, xbrett + 347, ybrett + 114);
g.drawLine(xbrett + 384, ybrett, xbrett + 384, ybrett + 114);
g.drawLine(xbrett + 422, ybrett, xbrett + 422, ybrett + 114);

g.drawLine(xbrett + 158, ybrett + 426, xbrett + 158, ybrett + Hoehe);
g.drawLine(xbrett + 196, ybrett + 426, xbrett + 196, ybrett + Hoehe);
g.drawLine(xbrett + 233, ybrett + 426, xbrett + 233, ybrett + Hoehe);
g.drawLine(xbrett + 271, ybrett + 426, xbrett + 271, ybrett + Hoehe);
g.drawLine(xbrett + 309, ybrett + 426, xbrett + 309, ybrett + Hoehe);
g.drawLine(xbrett + 347, ybrett + 426, xbrett + 347, ybrett + Hoehe);
g.drawLine(xbrett + 384, ybrett + 426, xbrett + 384, ybrett + Hoehe);
g.drawLine(xbrett + 422, ybrett + 426, xbrett + 422, ybrett + Hoehe);




int[] xfeld = {0,
xbrett + 535, // Bad
xbrett + 535, // Gemein
xbrett + 535, // Turm
xbrett + 535, // Einkommensteuer
xbrett + 535, // Süden
xbrett + 535, // Chaussee
xbrett + 535, // Ereignis
xbrett + 535, // Elise
xbrett + 535, // Post
xbrett + 535, // Gefängnis

xbrett + 431, // See
xbrett + 393, // EWerk
xbrett + 356, // Hafen
xbrett + 318, // Neue
xbrett + 280, // Westen
xbrett + 242, // Münchner
xbrett + 205, // Gemein
xbrett + 167, // Wiener
xbrett + 129, // Berliner
xbrett + 25, // FreiParken

xbrett + 25, // Theater
xbrett + 25, // Ereignis
xbrett + 25, // Museum
xbrett + 25, // Oper
xbrett + 25, // Norden
xbrett + 25, // Lessing
xbrett + 25, // Schiller
xbrett + 25, // WWerk
xbrett + 25, // Goethe
xbrett + 25, // Geh' ins Gefängnis

xbrett + 129, // Rathaus
xbrett + 167, // Haupt
xbrett + 205, // Gemein
xbrett + 242, // Bahnhof
xbrett + 280, // Haupt(Ost)
xbrett + 318, // Ereignis
xbrett + 356, // Park
xbrett + 393, // Zusatzsteuer
xbrett + 431, // Schlossallee
xbrett + 535, // Los

};


int[] yfeld = {0,
ybrett + 121, // Bad
ybrett + 156, // Gemein
ybrett + 190, // Turm
ybrett + 225, // Einkommensteuer
ybrett + 260, // Süden
ybrett + 294, // Chaussee
ybrett + 329, // Ereignis
ybrett + 364, // Elise
ybrett + 398, // Post
ybrett + 495, // Gefängnis

ybrett + 495, // See
ybrett + 495, // EWerk
ybrett + 495, // Hafen
ybrett + 495, // Neue
ybrett + 495, // Westen
ybrett + 495, // Münchner
ybrett + 495, // Gemein
ybrett + 495, // Wiener
ybrett + 495, // Berliner
ybrett + 495, // Frei Parken

ybrett + 398, // Theater
ybrett + 364, // Ereignis
ybrett + 329, // Museum
ybrett + 294, // Oper
ybrett + 260, // Norden
ybrett + 225, // Lessing
ybrett + 190, // Schiller
ybrett + 156, // WWerk
ybrett + 121, // Goethe
ybrett + 25, // Geh' ins Gefängnis

ybrett + 25, // Rathaus
ybrett + 25, // Haupt
ybrett + 25, // Gemein
ybrett + 25, // Bahnhof
ybrett + 25, // Haupt(Ost)
ybrett + 25, // Ereignis
ybrett + 25, // Park
ybrett + 25, // Zusatzsteuer
ybrett + 25, // Schlossallee
ybrett + 25, // Los

};




g.setColor(Color.red);

if (AktPlatz > 40)
{
AktPlatz -= 40;
}

g.fillOval(xfeld[AktPlatz], yfeld[AktPlatz], 20, 20) ;



g.setColor(Color.white);

int xwuerfel1 = 30, ywuerfel1 = 70 ;

g.fillRoundRect (xwuerfel1, ywuerfel1, 70, 70, 15, 15);

g.setColor(Color.black);

switch(Wurf) {
case 0:
break;
case 1:
g.fillOval(xwuerfel1 + 30, ywuerfel1 + 30, 10, 10) ;
break;
case 2:
g.fillOval(xwuerfel1 + 15, ywuerfel1 + 15, 10, 10) ;
g.fillOval(xwuerfel1 + 45, ywuerfel1 + 45, 10, 10) ;
break;
case 3:
g.fillOval(xwuerfel1 + 15, ywuerfel1 + 15, 10, 10) ;
g.fillOval(xwuerfel1 + 45, ywuerfel1 + 45, 10, 10) ;
g.fillOval(xwuerfel1 + 30, ywuerfel1 + 30, 10, 10) ;
break;
case 4:
g.fillOval(xwuerfel1 + 15, ywuerfel1 + 15, 10, 10) ;
g.fillOval(xwuerfel1 + 45, ywuerfel1 + 45, 10, 10) ;
g.fillOval(xwuerfel1 + 15, ywuerfel1 + 45, 10, 10) ;
g.fillOval(xwuerfel1 + 45, ywuerfel1 + 15, 10, 10) ;
break;
case 5:
g.fillOval(xwuerfel1 + 15, ywuerfel1 + 15, 10, 10) ;
g.fillOval(xwuerfel1 + 45, ywuerfel1 + 45, 10, 10) ;
g.fillOval(xwuerfel1 + 15, ywuerfel1 + 45, 10, 10) ;
g.fillOval(xwuerfel1 + 45, ywuerfel1 + 15, 10, 10) ;
g.fillOval(xwuerfel1 + 30, ywuerfel1 + 30, 10, 10) ;
break;
case 6:
g.fillOval(xwuerfel1 + 15, ywuerfel1 + 15, 10, 10) ;
g.fillOval(xwuerfel1 + 45, ywuerfel1 + 45, 10, 10) ;
g.fillOval(xwuerfel1 + 15, ywuerfel1 + 45, 10, 10) ;
g.fillOval(xwuerfel1 + 45, ywuerfel1 + 15, 10, 10) ;
g.fillOval(xwuerfel1 + 30, ywuerfel1 + 15, 10, 10) ;
g.fillOval(xwuerfel1 + 30, ywuerfel1 + 45, 10, 10) ;
break;

} // von Switch Wurf


int xwuerfel2 = 30, ywuerfel2 = 160;

g.setColor(Color.white);
g.fillRoundRect (xwuerfel2, ywuerfel2, 70, 70, 15, 15);

g.setColor(Color.black);

switch(Wurf2) {
case 0:
break;
case 1:
g.fillOval(xwuerfel2 + 30, ywuerfel2 + 30, 10, 10) ;
break;
case 2:
g.fillOval(xwuerfel2 + 15, ywuerfel2 + 15, 10, 10) ;
g.fillOval(xwuerfel2 + 45, ywuerfel2 + 45, 10, 10) ;
break;
case 3:
g.fillOval(xwuerfel2 + 15, ywuerfel2 + 15, 10, 10) ;
g.fillOval(xwuerfel2 + 45, ywuerfel2 + 45, 10, 10) ;
g.fillOval(xwuerfel2 + 30, ywuerfel2 + 30, 10, 10) ;
break;
case 4:
g.fillOval(xwuerfel2 + 15, ywuerfel2 + 15, 10, 10) ;
g.fillOval(xwuerfel2 + 45, ywuerfel2 + 45, 10, 10) ;
g.fillOval(xwuerfel2 + 15, ywuerfel2 + 45, 10, 10) ;
g.fillOval(xwuerfel2 + 45, ywuerfel2 + 15, 10, 10) ;
break;
case 5:
g.fillOval(xwuerfel2 + 15, ywuerfel2 + 15, 10, 10) ;
g.fillOval(xwuerfel2 + 45, ywuerfel2 + 45, 10, 10) ;
g.fillOval(xwuerfel2 + 15, ywuerfel2 + 45, 10, 10) ;
g.fillOval(xwuerfel2 + 45, ywuerfel2 + 15, 10, 10) ;
g.fillOval(xwuerfel2 + 30, ywuerfel2 + 30, 10, 10) ;
break;
case 6:
g.fillOval(xwuerfel2 + 15, ywuerfel2 + 15, 10, 10) ;
g.fillOval(xwuerfel2 + 45, ywuerfel2 + 45, 10, 10) ;
g.fillOval(xwuerfel2 + 15, ywuerfel2 + 45, 10, 10) ;
g.fillOval(xwuerfel2 + 45, ywuerfel2 + 15, 10, 10) ;
g.fillOval(xwuerfel2 + 30, ywuerfel2 + 15, 10, 10) ;
g.fillOval(xwuerfel2 + 30, ywuerfel2 + 45, 10, 10) ;
break;

} // von Switch Wurf2
}
}


[/code]
 
Zuletzt bearbeitet von einem Moderator:
Die Tags sind hier ein bisschen anders gekennzeichent: [Java] oder siehe rote Anmerkung
Daher konnte ich beim schnellen drüberscrollen nicht richtig erkennen, ob das Thread.sleep() in der Schleife ist -vermute mal ja.
==> die Schleife in einen separaten Thread auslagern, sonst bleibt der EDT blockiert bis die Schleife durchgelaufen ist und man sieht nur den letzten Zustand.
 
Du musst einen neuen Thread starten, denn so gibst du dem Thread der fürs Zeichen zuständig ist, keine Gelegenheit dafür!

Java:
Knopf4.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent e) {
				new Thread(new Runnable() {
					@Override
					public void run() {
						for (int i = 1; i < 100; i++) {

							f.repaint(); // Dieser Repaint funktioniert nicht, ohne das
											// das Bild neu aufgebaut wird, wird die
											// Schleife durchlaufen

							Random r = new Random();

							Wurf = 1 + Math.abs(r.nextInt()) % 6;
							Wurf2 = 1 + Math.abs(r.nextInt()) % 6;

							AktPlatz += (Wurf + Wurf2);

							if (AktPlatz > 40) {
								AktPlatz -= 40;
							}

							try {
								System.out.println("Vor wait");

								f.repaint();

								Thread.sleep(44);

								f.repaint();

								System.out.println("Hinter wait");

							} catch (InterruptedException e2) {

								System.out.println("catch");
							}

							f.repaint();

						}
					}
				}).start();
			}
		});

aber generell sind da so einige Sachen suboptimal 😀
Wieso rufst du eig. so oft repaint auf? eimal new Random reicht , Thread sleep, mhmm..

p.s.: Es gibt hier schöne
Java:
 Tags :D
 
Hi Basti,

danke!!!! für die superschnelle Hilfe !!!!

Es funzt, wenn man es richtig macht !!!


Die häufigen repaint()s hatte ich wegen des 'Nicht-Funktionieren' eingebaut !!

Wünsche Dir einen schönen Tag !!!

Gruß Troubardi
 
Der Südbahnhof ist also das häufigste Feld beim Monopoly ( nach dem Knast )

Erstaunlich ist die Berliner Strasse und der Rathausplatz......

Ich find mein Programm gut !!!


Wie gesagt ich bin neu in der OO-Welt und sage COBOL for ever !!! :toll:


Danke nochmal an Basti und Michael....

PS. Morgen mache ich dann OO



Java:
import java.awt.Color;
import java.awt.Graphics;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.util.Random;

import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;



public class monopoly3 extends JPanel {

		
	static int Hoehe;
	static int Breite;

	static int Wurf = 6;
	static int Wurf2 = 6;
	
	static int AnzWurfAbs = 0;
	
	static int[] AnzWurf = new int[13]; 
	
	static int[] AnzAktPlatz = new int[41]; 
	
	static int AktPlatz = 40;
	
	
	 
	
	
  public static void main(String[] a) {
	 
	  
	  final JFrame f = new JFrame();
	  
	  Hoehe = 540;
	  Breite = 580;
	  
	  
	  
	for (int i = 2; i < 13; i++){ 
		
		System.out.println("i" + i + AnzWurf);
	 	AnzWurf[i] = 0;
		
	};
	
    for (int i = 1; i < 41; i++){ 
		
		System.out.println("i" + i + AnzWurf);
	 	AnzAktPlatz[i] = 0;
		
	};
			
	  
	  JButton Knopf3, Knopf4, Knopf5 ;
	  
	 
	  Knopf3 = new JButton("Würfel");
	  Knopf4 = new JButton("100 mal");
	  Knopf5 = new JButton("Ausgang");
	  
   
    Knopf3.setBounds(20,555,96,26);
    Knopf4.setBounds(20,505,96,26);
    Knopf5.setBounds(1110,620,96,26);
    
  
     f.add(Knopf3);
     f.add(Knopf4);
     f.add(Knopf5);
     
/* 	JTextField zwei = new JTextField();
 	JLabel zwei = new JLabel();
 	zwei.setBackground(Color.orange );
 	zwei.setBounds(530, 500, 10, 60);
 	zwei.setText("" + AnzWurf[2]);
 	zwei.setVisible(true);
     f.add(zwei);
 */   
    
	Knopf5.addActionListener(new ActionListener() {

		public void actionPerformed(ActionEvent e) {
			System.exit(1);
		}
	});
    
   
	
	
	Knopf3.addActionListener(new ActionListener() {
		

		public void actionPerformed(ActionEvent e) {
			
			Random r = new Random();
			Wurf  = 1 + Math.abs(r.nextInt()) % 6;
			Wurf2  = 1 + Math.abs(r.nextInt()) % 6;
			
			AktPlatz += (Wurf + Wurf2);
					
			f.repaint();    // !!! Dieser Repaint funktioniert, das Bild wird neu aufgebaut der rote Punkt wandert 
		}
	});
	
	Knopf4.addActionListener(new ActionListener() {
		

		public void actionPerformed(ActionEvent e) {
			
			
			new Thread(new Runnable() {
                @Override
                public void run() {

                	
                	
             int AnzErg = 0;  
             int AnzGem = 0;  
                	
            String[] Ereignis = { " ",
            					"nächsterBahnhof",
            					"See",
            					"Los",
            					"NächstesWerk",
            					"3FelderZurück",
            					"Häuser",
            					"nächsterBahnhof",
            					"Opi",
            					"Süden",
            					"Strafzettel",
            					"Dividende",
            					"Knast",
            					"Vorstand",
            					"Frei",
            					"Schossallee",
            					"Bausparvertrag"
            					
            	           };
                	
                	
            int AnzPasch = 0;    	
				
			for (int i = 1; i < 10000; i++){
				
				
				f.repaint();  
				
				Random r = new Random();
			
				Wurf  = 1 + Math.abs(r.nextInt()) % 6;
				Wurf2  = 1 + Math.abs(r.nextInt()) % 6;
			
				AktPlatz += (Wurf + Wurf2);

				
				
				AnzWurfAbs += 1;
				
				System.out.println( "AnzWurf-" + (Wurf + Wurf2));  
						
				AnzWurf[(Wurf + Wurf2)] += 1 ;
				
				
				if (AktPlatz > 40)
				{
					AktPlatz -= 40;
				}
			
				
				AnzAktPlatz[AktPlatz] += 1; 
				
			//	Ereigniskarte
				
				if (AktPlatz == 7 || AktPlatz == 22 || AktPlatz == 36 )  {
					
					System.out.println("Ereignis AktPlatz : " + AktPlatz );
					
					AnzErg += 1;
					
					if (AnzErg == 17){ AnzErg = 1; } ;
					
					switch(AnzErg)  {
					
					case  1:                   //"nächsterBahnhof" :
					
						if (AktPlatz == 7) {AktPlatz = 15;};
						if (AktPlatz == 22) {AktPlatz = 25;};
						if (AktPlatz == 36) {AktPlatz = 5;};
						AnzAktPlatz[AktPlatz] += 1; 
											
						break;
														
					case  2:                      //  "See" :,
						
						AktPlatz = 11;
						AnzAktPlatz[AktPlatz] += 1; 
						break;
						
					case 3:                       //	"Los",
						
						AktPlatz = 40;
						AnzAktPlatz[AktPlatz] += 1; 
						break;
						
					case 4 :                       //"NächstesWerk",
						
						if (AktPlatz == 7) {AktPlatz = 12;};
						if (AktPlatz == 22) {AktPlatz = 28;};
						if (AktPlatz == 36) {AktPlatz = 12;};
						AnzAktPlatz[AktPlatz] += 1; 
						break;
					
					case 5 :               //"3FelderZurück",
						
						AktPlatz -= 3;
						AnzAktPlatz[AktPlatz] += 1; 
						break;
						
					case 6 :                       //"Häuser",
						
						break;
						
						
					case 7 :                         // "nächsterBahnhof",
						
						if (AktPlatz == 7) {AktPlatz = 15;};
						if (AktPlatz == 22) {AktPlatz = 25;};
						if (AktPlatz == 36) {AktPlatz = 5;};
						
						AnzAktPlatz[AktPlatz] += 1; 
											
						break;
						
					case 8 :                  //"Opi",
						
						AktPlatz = 24;
						AnzAktPlatz[AktPlatz] += 1; 
						break;
												
					case 9 :                //"Süden",
						
						AktPlatz = 5;
						AnzAktPlatz[AktPlatz] += 1; 
						break;
						
					case 10 :                 // "Strafzettel",
						break;
					case 11 :                    //"Dividende",
						break;
					case 12 :               //"Knast",
					   
					    AktPlatz = 10;
					    AnzAktPlatz[AktPlatz] += 1; 
					    break;
										
					case 13 :       // "Vorstand",
						break;
						
					case 14 :          //"Frei",
						break;
					
					case 15 :             //	"Schossallee",
						AktPlatz = 39;
						AnzAktPlatz[AktPlatz] += 1; 
						break;
						
						
					case 16 :                     //"Bausparvertrag"
					    break;
					}
					
					System.out.println("AktPlatzNeu:" + AktPlatz );
					
														
				} // Ereignis
				
//	Gemeinschaftskarte
				
				if (AktPlatz == 2 || AktPlatz == 17 || AktPlatz == 33 )  {
					
					System.out.println("Gemeinschaft AktPlatz : " + AktPlatz );
					
					AnzGem += 1;
					
					if (AnzGem == 17){ AnzGem = 1; } ;
					
					switch(AnzGem)  {
					
					
				
						
					case 3:                       //	"Los",
						
						AktPlatz = 40;
						AnzAktPlatz[AktPlatz] += 1; 
						break;
						
					
					
				
				
						
				
						
								
			
					case 12 :               //"Knast",
					   
					    AktPlatz = 10;
					    AnzAktPlatz[AktPlatz] += 1; 
					    break;
			
						
						
				
					}
					
					System.out.println("Gemein   AktPlatzNeu:" + AktPlatz );
					
														
				} // Gemeinschaftsfeld
				
				
				
				
				// Geh' innen Knast !!
				
				if (AktPlatz == 30) {
					AktPlatz = 10;
					AnzAktPlatz[AktPlatz] += 1;
				}
				
				// 3-mal Pasch ???
				
				
				if (Wurf == Wurf2)    {
					
					AnzPasch += 1;
					
					if (AnzPasch == 3 )
						
						AktPlatz = 10;
					    AnzAktPlatz[AktPlatz] += 1;
						
				}
				else {
					AnzPasch = 0;
				}
					
					
				
				
				
				
				
				
				
		
			try {
				System.out.println("Vor wait");	
			
				
				
			    Thread.sleep(11);
			  
				f.repaint();
						
				System.out.println("Hinter wait");	
				
				} catch (InterruptedException e2) {
					
					System.out.println("catch");	
			    }
				
						
				f.repaint();
			

            }
        }
    }).start();
}
});
				
				
				
							
	/*		}
		}}
	);
	
	*/
	
 
    f.setSize(1280, 690);
    
       
    f.add(new monopoly3());
    
    
    
    
    f.setBackground(Color.black); 
    
    f.setVisible(true);
   
    System.out.println("IgnRepaint: " + f.getIgnoreRepaint());   
    
     
    
  }
  
 
  
  

  public void paintComponent(Graphics g) {
	  
		
	int xbrett = 250;
	int ybrett = 50;
	
	g.setColor(Color.yellow);

//	if (AnzWurfAbs == 0) {
	for (int i=1;i<12;i++){
		g.fillRect(890, (484 + 10*i), 300, 8);
	}
	//}
	
	
	g.setColor(Color.red);
	
	for (int i=2;i<13;i++){
		g.drawString("" + i , 837, (483 + 10*i) );
		g.drawString(""  + AnzWurf[i], 858, (483 + 10*i) );
	
		if (AnzWurfAbs > 0){
			double zw = AnzWurfAbs / 4;
			double zw3 = (300*(AnzWurf[i]/zw));
			
			int zw2 = (int) zw3 ;
			System.out.println("zw: " + zw + " zw2: " + zw2 + " zw2: " + zw3);
			
		g.fillRect(890, (484 + 10*(i-1)),   zw2, 8);
		}
		
	}
	
	g.drawString(""  + AnzWurfAbs, 865, 645 );
	
	 
    String[] Feld = { " " ,
    		          "Bad",
	                  "Gemein",
	                  "Turm",
	                  "Einkommensteuer",
	                  "Süden",
	                  "Chaussee",
	                  "Ereignis",
	                  "Elise",
	                  "Post",
	                  "Gefängnis",
	                  "See",
			          "EWerk",
			          "Hafen",
			          "Neue",
			          "Westen",
			          "Münchner",
			          "Gemein",
			          "Wiener",
			          "Berliner",
			          "Frei Parken",
			          "Theater",
			          "Ereignis",
			          "Museum",
			          "Oper",
			          "Norden",
			          "Lessing",
			          "Schiller",
			          "WWerk",
			          "Goethe",
			          "Geh' ins Gefängnis",
			          "Rathaus",
			          "Haupt",
			          "Gemein",
			          "Bahnhof",
			          "Haupt(Ost)",
			          "Ereignis",
			          "Park",
			          "Zusatzsteuer",
			          "Schlossallee",
			          "Los"
			          
    };
	
    g.setColor(Color.lightGray);

	for (int i=1;i<41;i++){
		g.fillRect(1040, (21 + 11*i), 200, 8);
	}
	
	g.setColor(Color.cyan);
	
	for (int i=1;i<41;i++){
		g.drawString("" + AnzAktPlatz[i] , 837, (30 + 11*i) );
		g.drawString(Feld[i], 890, (30 + 11*i)) ;
	
	
	if (AnzWurfAbs > 0){
		double zw = AnzWurfAbs / 10;
		double zw3 = (200*(AnzAktPlatz[i]/zw));
		
		int zw2 = (int) zw3 ;
		System.out.println("zw: " + zw + " zw2: " + zw2 + " zw2: " + zw3);
		
		if(zw2 == 0 ) { zw2 = 1; }
		
	g.fillRect(1040, (21 + 11*i),   zw2, 8);
	}

	}
	
	
	  

	g.setColor(Color.green);
    g.fillRoundRect (xbrett, ybrett, Breite, Hoehe, 15, 15); 
    System.out.println("g: " + g ); 
    
    g.setColor(Color.black);
    g.drawLine(xbrett + 120, ybrett, xbrett + 120, ybrett + Hoehe);
    g.drawLine(xbrett + 460, ybrett, xbrett + 460, ybrett + Hoehe);
    g.drawLine(xbrett, ybrett + 114, xbrett + Breite, ybrett + 114);
    g.drawLine(xbrett, ybrett + 426, xbrett + Breite, ybrett + 426);
    
    g.drawLine(xbrett, ybrett + 149, xbrett + 120, ybrett + 149);
    g.drawLine(xbrett, ybrett + 183, xbrett + 120, ybrett + 183);
    g.drawLine(xbrett, ybrett + 218, xbrett + 120, ybrett + 218);
    g.drawLine(xbrett, ybrett + 253, xbrett + 120, ybrett + 253);
    g.drawLine(xbrett, ybrett + 287, xbrett + 120, ybrett + 287);
    g.drawLine(xbrett, ybrett + 322, xbrett + 120, ybrett + 322);
    g.drawLine(xbrett, ybrett + 357, xbrett + 120, ybrett + 357);
    g.drawLine(xbrett, ybrett + 391, xbrett + 120, ybrett + 391);
    
    g.drawLine(xbrett + 460, ybrett + 149, xbrett + Breite, ybrett + 149);
    g.drawLine(xbrett + 460, ybrett + 183, xbrett + Breite, ybrett + 183);
    g.drawLine(xbrett + 460, ybrett + 218, xbrett + Breite, ybrett + 218);
    g.drawLine(xbrett + 460, ybrett + 253, xbrett + Breite, ybrett + 253);
    g.drawLine(xbrett + 460, ybrett + 287, xbrett + Breite, ybrett + 287);
    g.drawLine(xbrett + 460, ybrett + 322, xbrett + Breite, ybrett + 322);
    g.drawLine(xbrett + 460, ybrett + 357, xbrett + Breite, ybrett + 357);
    g.drawLine(xbrett + 460, ybrett + 391, xbrett + Breite, ybrett + 391);
    
    g.drawLine(xbrett + 158, ybrett, xbrett + 158, ybrett + 114);
    g.drawLine(xbrett + 196, ybrett, xbrett + 196, ybrett + 114);
    g.drawLine(xbrett + 233, ybrett, xbrett + 233, ybrett + 114);
    g.drawLine(xbrett + 271, ybrett, xbrett + 271, ybrett + 114);
    g.drawLine(xbrett + 309, ybrett, xbrett + 309, ybrett + 114);
    g.drawLine(xbrett + 347, ybrett, xbrett + 347, ybrett + 114);
    g.drawLine(xbrett + 384, ybrett, xbrett + 384, ybrett + 114);
    g.drawLine(xbrett + 422, ybrett, xbrett + 422, ybrett + 114);
    
    g.drawLine(xbrett + 158, ybrett + 426, xbrett + 158, ybrett + Hoehe);
    g.drawLine(xbrett + 196, ybrett + 426, xbrett + 196, ybrett + Hoehe);
    g.drawLine(xbrett + 233, ybrett + 426, xbrett + 233, ybrett + Hoehe);
    g.drawLine(xbrett + 271, ybrett + 426, xbrett + 271, ybrett + Hoehe);
    g.drawLine(xbrett + 309, ybrett + 426, xbrett + 309, ybrett + Hoehe);
    g.drawLine(xbrett + 347, ybrett + 426, xbrett + 347, ybrett + Hoehe);
    g.drawLine(xbrett + 384, ybrett + 426, xbrett + 384, ybrett + Hoehe);
    g.drawLine(xbrett + 422, ybrett + 426, xbrett + 422, ybrett + Hoehe);
    
    
    
    
   int[] xfeld = {0, 
		          xbrett + 535,      // Bad
		          xbrett + 535,      // Gemein
		          xbrett + 535,      // Turm
		          xbrett + 535,      // Einkommensteuer
		          xbrett + 535,      // Süden
		          xbrett + 535,      // Chaussee
		          xbrett + 535,      // Ereignis
		          xbrett + 535,      // Elise
		          xbrett + 535,      // Post
		          xbrett + 535,      // Gefängnis
		          
		          xbrett + 431,      // See
		          xbrett + 393,      // EWerk
		          xbrett + 356,      // Hafen
		          xbrett + 318,      // Neue
		          xbrett + 280,      // Westen
		          xbrett + 242,      // Münchner
		          xbrett + 205,      // Gemein
		          xbrett + 167,      // Wiener
		          xbrett + 129,      // Berliner
		          xbrett + 25,        // FreiParken
		          
		          xbrett + 25,      // Theater
		          xbrett + 25,      // Ereignis
		          xbrett + 25,      // Museum
		          xbrett + 25,      // Oper
		          xbrett + 25,      // Norden
		          xbrett + 25,      // Lessing
		          xbrett + 25,      // Schiller
		          xbrett + 25,      // WWerk
		          xbrett + 25,      // Goethe
		          xbrett + 25,      // Geh' ins Gefängnis
		          
		          xbrett + 129,      // Rathaus
		          xbrett + 167,      // Haupt
		          xbrett + 205,      // Gemein
		          xbrett + 242,      // Bahnhof
		          xbrett + 280,      // Haupt(Ost)
		          xbrett + 318,      // Ereignis
		          xbrett + 356,      // Park
		          xbrett + 393,      // Zusatzsteuer
		          xbrett + 431,      // Schlossallee
		          xbrett + 535,        // Los
		          
   }; 

   
   int[] yfeld = {0, 
		          ybrett + 121,      // Bad
		          ybrett + 156,      // Gemein
		          ybrett + 190,      // Turm
		          ybrett + 225,      // Einkommensteuer
		          ybrett + 260,      // Süden
		          ybrett + 294,      // Chaussee
		          ybrett + 329,      // Ereignis
		          ybrett + 364,      // Elise
		          ybrett + 398,      // Post
		          ybrett + 495,      // Gefängnis
		          
		          ybrett + 495,      // See
		          ybrett + 495,      // EWerk
		          ybrett + 495,      // Hafen
		          ybrett + 495,      // Neue
		          ybrett + 495,      // Westen
		          ybrett + 495,      // Münchner
		          ybrett + 495,      // Gemein
		          ybrett + 495,      // Wiener
		          ybrett + 495,      // Berliner
		          ybrett + 495,       // Frei Parken
		          
		          ybrett + 398,      // Theater
		          ybrett + 364,      // Ereignis
		          ybrett + 329,      // Museum
		          ybrett + 294,      // Oper
		          ybrett + 260,      // Norden
		          ybrett + 225,      // Lessing
		          ybrett + 190,      // Schiller
		          ybrett + 156,      // WWerk
		          ybrett + 121,      // Goethe
		          ybrett + 25,      // Geh' ins Gefängnis
		          
		          ybrett + 25,      // Rathaus
		          ybrett + 25,      // Haupt
		          ybrett + 25,      // Gemein
		          ybrett + 25,      // Bahnhof
		          ybrett + 25,      // Haupt(Ost)
		          ybrett + 25,      // Ereignis
		          ybrett + 25,      // Park
		          ybrett + 25,      // Zusatzsteuer
		          ybrett + 25,      // Schlossallee
		          ybrett + 25,        // Los
		          
   }; 

   // Gemein
   
   g.setColor(Color.black);
   g.drawString("GEMEIN", (xfeld[2] - 65), ( yfeld[2] + 15) ); 

// Ereignis
   
   g.setColor(Color.black);
   g.drawString("EREIGNIS", (xfeld[7] - 65), ( yfeld[7] + 15) ); 

   
   
   //Turm und Bad
   
   Color lila = new Color(200,0,200);
   g.setColor(lila);
   g.fillRect((xfeld[1] - 73) , (yfeld[1] - 4), 21, 30);
   g.fillRect((xfeld[3] - 73) , (yfeld[3] - 4), 21, 30);
   
   
   
   
    
    g.setColor(Color.red);
   
	if (AktPlatz > 40)
	{
		AktPlatz -= 40;
	}
    
	g.fillOval(xfeld[AktPlatz], yfeld[AktPlatz], 20, 20) ;
    
      
 
    g.setColor(Color.white);
    
    int xwuerfel1 = 30, ywuerfel1 = 70 ;
    
    g.fillRoundRect (xwuerfel1, ywuerfel1, 70, 70, 15, 15);
    
    g.setColor(Color.black);
    
    switch(Wurf) {
    case 0:
    	break;
    case 1:	
       	g.fillOval(xwuerfel1 + 30, ywuerfel1 + 30, 10, 10) ;
       	break;
    case 2:
    	g.fillOval(xwuerfel1 + 15, ywuerfel1 + 15, 10, 10) ;
    	g.fillOval(xwuerfel1 + 45, ywuerfel1 + 45, 10, 10) ;
    	break;
    case 3:
    	g.fillOval(xwuerfel1 + 15, ywuerfel1 + 15, 10, 10) ;
    	g.fillOval(xwuerfel1 + 45, ywuerfel1 + 45, 10, 10) ;
    	g.fillOval(xwuerfel1 + 30, ywuerfel1 + 30, 10, 10) ;
    	break;
    case 4:
    	g.fillOval(xwuerfel1 + 15, ywuerfel1 + 15, 10, 10) ;
    	g.fillOval(xwuerfel1 + 45, ywuerfel1 + 45, 10, 10) ;
    	g.fillOval(xwuerfel1 + 15, ywuerfel1 + 45, 10, 10) ;
    	g.fillOval(xwuerfel1 + 45, ywuerfel1 + 15, 10, 10) ;
    	break;
    case 5:	
   		g.fillOval(xwuerfel1 + 15, ywuerfel1 + 15, 10, 10) ;
   		g.fillOval(xwuerfel1 + 45, ywuerfel1 + 45, 10, 10) ;
   		g.fillOval(xwuerfel1 + 15, ywuerfel1 + 45, 10, 10) ;
   		g.fillOval(xwuerfel1 + 45, ywuerfel1 + 15, 10, 10) ;
   		g.fillOval(xwuerfel1 + 30, ywuerfel1 + 30, 10, 10) ;
   		break;
    case 6:
    	g.fillOval(xwuerfel1 + 15, ywuerfel1 + 15, 10, 10) ;
   		g.fillOval(xwuerfel1 + 45, ywuerfel1 + 45, 10, 10) ;
   		g.fillOval(xwuerfel1 + 15, ywuerfel1 + 45, 10, 10) ;
   		g.fillOval(xwuerfel1 + 45, ywuerfel1 + 15, 10, 10) ;
   		g.fillOval(xwuerfel1 + 30, ywuerfel1 + 15, 10, 10) ;
   		g.fillOval(xwuerfel1 + 30, ywuerfel1 + 45, 10, 10) ;
    	break;
    	
  	}	// von Switch Wurf
    
    
    int xwuerfel2 = 30,  ywuerfel2 = 160;
    
    g.setColor(Color.white);
    g.fillRoundRect (xwuerfel2, ywuerfel2, 70, 70, 15, 15);
    
    g.setColor(Color.black);
    
    switch(Wurf2) {
    case 0:
    	break;
    case 1:	
       	g.fillOval(xwuerfel2 + 30, ywuerfel2 + 30, 10, 10) ;
       	break;
    case 2:
    	g.fillOval(xwuerfel2 + 15, ywuerfel2 + 15, 10, 10) ;
    	g.fillOval(xwuerfel2 + 45, ywuerfel2 + 45, 10, 10) ;
    	break;
    case 3:
    	g.fillOval(xwuerfel2 + 15, ywuerfel2 + 15, 10, 10) ;
    	g.fillOval(xwuerfel2 + 45, ywuerfel2 + 45, 10, 10) ;
    	g.fillOval(xwuerfel2 + 30, ywuerfel2 + 30, 10, 10) ;
    	break;
    case 4:
    	g.fillOval(xwuerfel2 + 15, ywuerfel2 + 15, 10, 10) ;
    	g.fillOval(xwuerfel2 + 45, ywuerfel2 + 45, 10, 10) ;
    	g.fillOval(xwuerfel2 + 15, ywuerfel2 + 45, 10, 10) ;
    	g.fillOval(xwuerfel2 + 45, ywuerfel2 + 15, 10, 10) ;
    	break;
    case 5:	
   		g.fillOval(xwuerfel2 + 15, ywuerfel2 + 15, 10, 10) ;
   		g.fillOval(xwuerfel2 + 45, ywuerfel2 + 45, 10, 10) ;
   		g.fillOval(xwuerfel2 + 15, ywuerfel2 + 45, 10, 10) ;
   		g.fillOval(xwuerfel2 + 45, ywuerfel2 + 15, 10, 10) ;
   		g.fillOval(xwuerfel2 + 30, ywuerfel2 + 30, 10, 10) ;
   		break;
    case 6:
    	g.fillOval(xwuerfel2 + 15, ywuerfel2 + 15, 10, 10) ;
   		g.fillOval(xwuerfel2 + 45, ywuerfel2 + 45, 10, 10) ;
   		g.fillOval(xwuerfel2 + 15, ywuerfel2 + 45, 10, 10) ;
   		g.fillOval(xwuerfel2 + 45, ywuerfel2 + 15, 10, 10) ;
   		g.fillOval(xwuerfel2 + 30, ywuerfel2 + 15, 10, 10) ;
   		g.fillOval(xwuerfel2 + 30, ywuerfel2 + 45, 10, 10) ;
    	break;
    	
     }	// von Switch Wurf2
    
    
   
    
    
   }
  }
 

Neue Themen


Zurück
Oben