BlueJ Frage

Status
Nicht offen für weitere Antworten.
Hallo,

wir programmieren gerade in der Schule mit Java

und ich hätt mal ne frage:

Kann man mehrer Befehle Gleichzeitig ablaufen lassen?

also z.B. 2 Rechtecke gleichzeitig verschieben


mfg

hubi
 

Developer_X

Top Contributor
Code:
public class duHubi extends Frame
{
public static void main(String[]args)
{
duHubi duhubi = new duHubi();
duhubi.setTile("duHUBI!!!");
duhubi.setVisible(true);
}
public void paint(Graphics g)
{

//.. was du machen möchtest du hubi!
warte(1000);
//..was soll nach einer sekunde passiert sein
}
public static void warte(long millis){
	try{
		Thread.sleep(millis);
	}
	catch(InterruptedException e){}
}
}
 

Schandro

Top Contributor
oh man developer_x, echt tolle Antwort... EDIT: Meinte den ersten Post von dir, du Developer

@Hubschaubbäär
Leider seehr ungenau gestellt die Frage.
Meinst du sowas? :
Code:
import javax.swing.*;
import javax.imageio.*;
import java.awt.*;
import java.awt.image.*;
import java.awt.geom.*;
import java.awt.event.*;
import java.util.*;
import java.io.*;

public class XXX{

	public static void main(String[] args){
		new XXX();}


	private JFrame window = new JFrame();
	int x;
	int x2;

	public XXX(){
		window.setBounds(100,100,400,400);

		window.add(panel);

		window.setVisible(true);

		new Thread(new Runnable(){
			public void run(){
				while(true){
					try{Thread.sleep(100);}catch(Exception e){e.printStackTrace();}
					x+=5;
					x2+=10;
					panel.repaint();
				}
			}
		}).start();
	}


	JPanel panel = new JPanel(){
		public void paintComponent(Graphics g){
			super.paintComponent(g);

			g.drawRect(x,10,50,50);
			g.drawRect(x2,50,50,50);


		}
	};

}

EDIT: Das Beispiel von Developer_X ist übrigens Schrott. man sollte niemals irgendwas anderes außer das malen in paint machen, schon garnicht Thread.sleep();
 

Developer_X

Top Contributor
alles klar du hubi?
PS:
Ich benutzte nur hubi, weil du als erstes als letztes geschrieben hast ich zitiere mal:
mfg

hubi
 
bei mir schauts grad so aus


Code:
public void Tag()
    {
      Sonne.Sonne (75);

      Rauch.Rauch (75);
      
     .
     .
     .


und ich will, dass der befehl sonne gleichzeitig mit dem befehl rauch ausgeführt werden

sodass sich beide kreise gleichzeitig bewegen
 

Schandro

Top Contributor
poste mal bitte kompletten Code. Das einzige was man dir zu dem Code sagen kann, den du geschrieben hast, ist:
Methodennamen werden Kleingeschrieben...
 
Code:
public class Haus
{
    // instance variables - replace the example below with your own
        Rechteck3 Nacht;
    Rechteck Bau;
    Dreieck Dach;
    Rechteck2 Kamin;
    Sonne Sonne;
    Quadrat Fenster1;
    Quadrat Fenster2;
    Quadrat Fenster3;
    Quadrat Fenster4;
    Gras Gras;
    Rauch Rauch;


    public Haus()
    {
        // initialise instance variables
       Nacht = new Rechteck3(); 
       Rauch = new Rauch();
       Fenster1 = new Quadrat();
       Fenster2 = new Quadrat();
       Fenster3 = new Quadrat();
       Fenster4 = new Quadrat();
       Gras = new Gras(); 
       Bau = new Rechteck();
       Dach = new Dreieck();
       Kamin = new Rechteck2();
       Sonne = new Sonne();
      Gras.sichtbarMachen (); 
      Bau.sichtbarMachen ();
      Dach.sichtbarMachen ();
      Kamin.sichtbarMachen ();
      Fenster1.sichtbarMachen ();
      Fenster2.sichtbarMachen ();
      Fenster3.sichtbarMachen ();
      Fenster4.sichtbarMachen ();
      Fenster1.vertikalBewegen(190);
      Fenster2.vertikalBewegen(190);
      Fenster3.vertikalBewegen(160);
      Fenster4.vertikalBewegen(160);
      Fenster1.horizontalBewegen(50);
      Fenster2.horizontalBewegen(70);
      Fenster3.horizontalBewegen(50);
      Fenster4.horizontalBewegen(70);

      
    }
    
    public void Tag()
    {



       //die beiden sollen gleichzeitig ausgeführt werden//
      ________________
      Sonne.Sonne (75);
      Rauch.Rauch (75);
      _______________
      Rauch.Rauch (75);
      Rauch.Rauch (75);
      Rauch.Rauch (75);
      Rauch.Rauch (75);
      Rauch.Rauch (75);
      Rauch.Rauch (75);
      Rauch.Rauch (75); 
      Rauch.unsichtbarMachen();
      Sonne.nachLinksBewegen();
      Nacht.sichtbarMachen();
      Gras.sichtbarMachen (); 
      Bau.sichtbarMachen ();
      Bau.farbeAendern ("grau");
      Dach.sichtbarMachen ();
      Kamin.sichtbarMachen ();
      Fenster1.sichtbarMachen ();
      Fenster2.sichtbarMachen ();
      Fenster3.sichtbarMachen ();
      Fenster4.sichtbarMachen ();
      Sonne.Mond(75);
      Bau.farbeAendern ("weiss");
      Nacht.unsichtbarMachen();
      Fenster1.sichtbarMachen ();
      Fenster2.sichtbarMachen ();
      Fenster3.sichtbarMachen ();
      Fenster4.sichtbarMachen ();
    }
     

     
   
}
 

Schandro

Top Contributor
Reicht leider immernoch nicht ;)

Ich nehm jetzt mal an, das Dreieck, Kamin usw. von JComponent erben und sachen wie "horizontalBewegen(50)" einfach nur:
this.setLocation((int)this.getLocation().getX()+param,(int)this.getLocation().getY());
aufruft.

Dann funktioniert gleichzeitiges bewegen:
Code:
import javax.swing.*;
import javax.imageio.*;
import java.awt.*;
import java.awt.image.*;
import java.awt.geom.*;
import java.awt.event.*;
import java.util.*;
import java.io.*;

public class XXX{

	public static void main(String[] args){
		new XXX();}


	private JFrame window = new JFrame();
	private JPanel panel = new JPanel();

	public XXX(){
		window.setBounds(100,100,400,400);

		window.add(panel);
		window.setVisible(true);

		panel.setLayout(null); // sollte man eigentlich fast nie machen, ist hier ne Ausnhame

		final JButton button = new JButton("Hallo");
		button.setSize(80,50);
		panel.add(button);
		final JButton button2 = new JButton("Zweites Hallo");
		button2.setSize(150,20);
		panel.add(button2);

		new Thread(new Runnable(){
			public void run(){
				while(true){
					try{Thread.sleep(100);}catch(Exception e){e.printStackTrace();}
					button.setLocation((int)button.getLocation().getX()+1,(int)button.getLocation().getY());
					button2.setLocation((int)button2.getLocation().getX()+3,(int)button2.getLocation().getY());
				}
			}
		}).start();
	}
}

Wahrscheinlich haben deine öminösen großgeschrieben Methoden wie "Rauch" aber eine andere art, wie sie sich malen. Kannst du auf diesen Code zugreifen?

Edit: Was du aufjedenfall ausprobieren könntest:


Code:
new Thread(new Runnable(){
	public void run(){
	   Sonne.Sonne (75); 
	}
}).start();
new Thread(new Runnable(){
	public void run(){
	   Rauch.Rauch (75); 
	}
}).start();
 

Schandro

Top Contributor
Ich hätt auch noch nen Vorschlag für den admin von java-forum.org, du wolltest dem doch eh ne email schreiben:
Man bräuchte hier eine ignore Liste, wo Postings von bestimmten Accounts automatisch ausgeblendet werden.

PS: Wär gut wenn du den Code von dir ganz oben in diesen Thread wegmachen würdest, andere Sachen innerhalb der paint-Methode sind nämlich extrem schlecht und haben mich selber schon mind. 20 Stunden Zeit gekostet, bis ich das damals gerafft habe. Wär also nicht so schön, wenn jemand deinen Post als Vorbild nimmt und das nachprogrammiert
 
das is genau das was ich machen wollte (also der edit)

wenn ich des dann aber aufführen will kommt eine fehlermeldung



java.util.ConcurrentModificationException
at java.util.AbstractList$Itr.checkForComodification(AbstractList.java:372)
at java.util.AbstractList$Itr.next(AbstractList.java:343)
at Leinwand.erneutZeichnen(Leinwand.java:132)
at Leinwand.zeichne(Leinwand.java:85)
at Sonne.zeichnen(Sonne.java:509)
at Sonne.Sonne(Sonne.java:252)
at Haus$1.run(Haus.java:60)
at java.lang.Thread.run(Thread.java:619)


und der Quelltext von meiner leinwand öffnet sich :?:
 

Steev

Bekanntes Mitglied
Dieser Fehler kommte vorrangig, wenn du keine Elemente in einer Liste hast und dann folgendes machst:

Code:
for(Element e : elements)
{
  // do something
}

Ansonsten verstehe ich ehrlich gesagt überhaupt nicht wo hier das Problem ist. Du willst glaube ich ein Haus zeichnen, wo aus dem Schornstein Rauch heraus kommt?

Benutze einfach Rectangle-, Oval- oder GeneralPath-Objekte, mit denen du die Formen darstellst. Dann musst du einfach nur pro Neuzeichnung durch deine repaint-Schleife die Objekte verschieben.

Zeitmäßig werden deine Objekte natürlich hintereinander verschoben, aber da alles auf einmal gezeichnet wird, schaut es dann so aus, als ob sich alle Objekte gleichzeitig bewegen.

PS: Falls du mehrere Threads verwendest würde ich die Bewegungen synchronisieren, damit die Bewegungen auch wirklich immer gleich ablaufen.
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
P Frage zu einem Projekt "Einarmiger Bandit" 3 Walzen / 9 Zeichnungen BLUEJ Spiele- und Multimedia-Programmierung 10
M BlueJ Schach Steuerung programmieren Spiele- und Multimedia-Programmierung 31
D BlueJ Ufo-Projekt Spiele- und Multimedia-Programmierung 10
F BlueJ Ufospiel Probleme Spiele- und Multimedia-Programmierung 1
U java blueJ BMI rechner Spiele- und Multimedia-Programmierung 8
W Hilfe bei Pong mit Bluej Spiele- und Multimedia-Programmierung 4
N Minecraft Frage für einen Minecraft Server Spiele- und Multimedia-Programmierung 2
G [Java/KryoNet/LibGDX] Mutliplayer Packet Frage Spiele- und Multimedia-Programmierung 2
G [Java Server] Allgemeine Frage zum Thema Networking in Videospielen Spiele- und Multimedia-Programmierung 15
J Frage zum Einlesen einer .wav in ein byte Array Spiele- und Multimedia-Programmierung 3
S ImageSlider frage Spiele- und Multimedia-Programmierung 3
Anfänger2011 Minimap: Theoretische Frage zur Umsetzung Spiele- und Multimedia-Programmierung 2
Androbin Kollisions-Frage Spiele- und Multimedia-Programmierung 8
windl Frage zu Airplay und zur Mitarbeit bei einer Mediaanlage Spiele- und Multimedia-Programmierung 0
S LWJGL Kamera Frage Spiele- und Multimedia-Programmierung 2
Guybrush Threepwood Ketzerische Frage: Opus-Codec für Java Spiele- und Multimedia-Programmierung 14
CookieSoft OpenGl Translatef Frage Spiele- und Multimedia-Programmierung 2
Kenan89 Theoretische Frage zu Tile Spielkarten Spiele- und Multimedia-Programmierung 9
R Tileloader Frage Spiele- und Multimedia-Programmierung 2
S Frage: NullPointer, aber warum? Spiele- und Multimedia-Programmierung 8
J Anfänger Frage wie adden? Spiele- und Multimedia-Programmierung 9
R Frage zur Kollision Spiele- und Multimedia-Programmierung 5
M.F.G. Spielvorstellung (plus KI frage): Connect Four – Extreme Spiele- und Multimedia-Programmierung 11
Helgon OpenGL Blend Frage Spiele- und Multimedia-Programmierung 18
P Frage bzgl. TextAdventure Spiele- und Multimedia-Programmierung 11
K Frage zur 3D Entwicklung zwecks vorhandener Engines Spiele- und Multimedia-Programmierung 17
V Frage zu AffineTransforms Spiele- und Multimedia-Programmierung 2
N frage zu der mp3spi Spiele- und Multimedia-Programmierung 2
J Frage zu Threads Spiele- und Multimedia-Programmierung 5
C Frage zu Ray-Picking mit JOGL Spiele- und Multimedia-Programmierung 13
M VRML Loader(noob Frage) ^^ Spiele- und Multimedia-Programmierung 3
M Prinzipielle Frage: Kann Java Grafiken ausschneiden? Spiele- und Multimedia-Programmierung 3
R Frage zu Hütchenspielprogrammierung! Spiele- und Multimedia-Programmierung 47
V Frage zu Grafiken und Software! Spiele- und Multimedia-Programmierung 5
radiac Mal eine ganz Doofe Frage... verzeiht :) Spiele- und Multimedia-Programmierung 9
Developer_X Eine Frage zur ViewBesetzung Spiele- und Multimedia-Programmierung 28
K Malefiz programmieren - Frage zu den einzelnen Spielfeldern Spiele- und Multimedia-Programmierung 5
G Ping Pong Frage Spiele- und Multimedia-Programmierung 17
0x7F800000 allgemeine frage zu Java 3D Spiele- und Multimedia-Programmierung 12
B Frage zur Spielsteuerung bei einem rundenbasiertes Spiel Spiele- und Multimedia-Programmierung 5
G frage zu tutorial Spiele- und Multimedia-Programmierung 3
M Frage eines Anfängers Spiele- und Multimedia-Programmierung 3
N Schiffe Versenken Frage zum Spielbrett Spiele- und Multimedia-Programmierung 24
N Generelle Frage: "GUI"-Werkzeuge Spiele- und Multimedia-Programmierung 5
X Frage zu Import von CAD Zeichnungen Spiele- und Multimedia-Programmierung 4
A kurze Frage zu Java3D! (automatische Skalierung) Spiele- und Multimedia-Programmierung 3
S Poker - grundlegende frage zu paint() Spiele- und Multimedia-Programmierung 10
B Frage zum GUI-Design bei Brettspielen Spiele- und Multimedia-Programmierung 4
P Frage zum Scrolling Spiele- und Multimedia-Programmierung 23
B Frage zum Abspielen von Sounddateien Spiele- und Multimedia-Programmierung 2
J Frage zu Geometry und Shape3D Spiele- und Multimedia-Programmierung 4
J Frage zu Transform3D.mul() Spiele- und Multimedia-Programmierung 2
J Java3D: Texture-Frage Spiele- und Multimedia-Programmierung 4
C frage zu glrotated Spiele- und Multimedia-Programmierung 12
T Einsatzbereich-Frage von Java 3D Spiele- und Multimedia-Programmierung 24
S [Java2D] Performance Frage Spiele- und Multimedia-Programmierung 4
G Frage zur Sichtbarkeit von Flächen Spiele- und Multimedia-Programmierung 2

Ähnliche Java Themen

Neue Themen


Oben