sich bewegende grafische Objekte

Kampfzwereg

Bekanntes Mitglied
ich hab Kunden und einkaufskasse in flughafen und flugzeuge geändert.

1) ich benutzt die wait-methode nicht mehr. ich hab nen zähler im der klasse Flugzeug, die ich runterzählen lassen kann.

2) macht das denn so einen großen unterschied?

3)wie kann ich das denn nur einmmal zeichen. ich muss das doch in die run methode schreiben oder?


Java:
public class QueueNEU {
  // Anfang Attribute
  public Node first; //der forderste Knoten
  public Node last;  //der hinterste Knoten
  public int anzahlFlugzeuge=0;
  // Ende Attribute

  public QueueNEU() {
  }
  // Anfang Methoden
  public boolean isEmpty()
  {
    if(first == null)
    {
       return true;
    }
    else
    {
       return false;
    }

  }
  public void dequeue()
  {
     if(isEmpty())
     {
     }
     else if(first==last)
     {
       first= null;
       last= null;
       anzahlFlugzeuge--;
     }
     else
     {
        first= first.getNext();
        anzahlFlugzeuge--;
     }
  }
  public void enqueue(Object pObject)
  {
     if(isEmpty())
     {
       first = new Node(pObject, null);
       last= first;
       anzahlFlugzeuge++;
     }
     else if(first==last)
     {
       last= new Node(pObject, null);
       first.setNext(last);
       anzahlFlugzeuge++;
     }
     else
     {
       last.setNext(new Node(pObject, null));
       last = last.getNext();
       anzahlFlugzeuge++;
       
     }
  }
  public Object front()
  {
    if(isEmpty())
    {
      return null;
    }
    else
    {
      return first.getObject();    }

  }


Da hab ich auch ein Problem.
Java:
g.drawImage(imgFlugzeug,((Flugzeug)schlange.front().getPos()),155,this);
g.drawImage(imgFlugzeug,((Flugzeug)schlange.front().getNext().getPos()),155,this);
Er sagt mir nämlich immer :
Java:
Flughafen.java:127:59: error: cannot find symbol
g.drawImage(imgFlugzeug((Flugzeug)schlange.front().getPos()),155,this);                                                                                                                     ^
 
Zuletzt bearbeitet:

darkeye2

Bekanntes Mitglied
1.) die methode ist oben aber immer noch drin, und das solltest du ändern, und runterzählen ist auch nicht viel performanter, nimm doch einfach thread.sleep, wieso versuchst du da das rad neu zu erfinden?

2.) ja, jpanel doublebuffered und es gibt noch weitere gründe, wieso es mehr sinn macht auf ein panel zu zeichnen und nicht auf das frame selbst, kannst dich in das thema mal einlesen, wenn es dich interessiert, spätestens, wenn du viele dinge zeichnen musst und du auch noch ein menue usw. hast macht es sinn die zeichnung auf ein panel zu machen, also lieber gleich machen.

3.) du erstellst eine methode, die du init() nennst diese rufst du in deinem constructor VOR dem starten des threads auf.
die methode könnte für den anfang so aussehen:
Java:
private void init(){
       try
       {
       imgFlugzeug = ImageIO.read(new File("img/flugzeugneu2.png"));
       imgHintergrund = ImageIO.read(new File("img/hintergrund.jpg"));
       }
       catch(IOException e)
       {
}

damit hast du die bilder geladen und musst die nicht mehr neuladen, zeichen musst du die schon noch, aber nicht nochmal laden, ich schaue mir deinen code mal an und poste in 10-15min mal verbesserungsvorschläge und vllt ne lösung für dein problem.

EDIT: auch wenn du immer noch nicht alle deine klassen gepostet hast, verstehe ich das richtig:
du hast eine klasse flugzeug, die z.b. position oder so speichert und eine schlange, wo sich diese einreihen, und du bewegst die dann der reihe nach, oder was genau versuchst du zu machen? erklär das mal bitte, und reiche nach möglichkeit noch die restlichen klassen nach
 
Zuletzt bearbeitet:

Kampfzwereg

Bekanntes Mitglied
die du init() nennst diese rufst du in deinem constructor VOR dem starten des threads auf

ich hab zwar nen Konstruktor aber kein thread. also trotzdem einfach rein?
fast....ich hab ne schlange ...die besteht aus Nodes. Und diese Nodes speichern Objekte vom Type flugzeug.
Zu der Methode waiting. mein prob an der war, dass ja das ganze Prog warten muss.- ich will aber nur, dass das LFugzeug warten während nen anderes schon weiter flieg. geht das denn mit deiner methode?
Java:
/**
  *
  * Beschreibung
  *
  * @version 1.0 vom 22.11.2011
  * @author
  */

public class Node {

  // Anfang Attribute
  private Node next;
  private Object object;
  // Ende Attribute

  public Node(Object pObject, Node nextNode) {
    this.next = nextNode;
    this.object = pObject;
  }

  // Anfang Methoden
  public Node getNext() {
    return next;
  }

  public void setNext(Node next) {
    this.next = next;
  }

  public Object getObject() {
    return object;
  }

  public void setObject(Object object) {
    this.object = object;
  }

  // Ende Methoden
}

und die Nodes Speichern Objekte vom Typ Flugzeug.
 
Zuletzt bearbeitet:

darkeye2

Bekanntes Mitglied
nein, das geht dann nicht, aber ich denke ich weiß, worauf das ganze hinausläuft, also dein erster fehler:
du speicherst in deinen nodes keine Flugzeuge, sondern Objecte, und das ist ja wieder was anderes (auch wenn dein flugzeug naütrlich ein object ist)

Ich glaube du gehst das ganze etwas falsch an, da es ja scheinbar ein spiel werden soll, so sollte der grundaufbau aussehen:

1.) klasse Sprite oder was ähnliches, die alles bewegbare speichern kann, was halt im spiel vorkommt
die klasse soll nur einen konstructor haben, der den index des bilder mitkriegt, außerdem soll die klasse die abstracte methode move haben
2.) klasse Flugzeug erbt von Sprite (public class Flugzeug extends Sprite) diese speichert start und zielposition des flugzeugs, sowie z.b. anzahl passagiere und max anzahl passagiere, methoden kannst die wählen, was du brauchst, musst aber move() entsprechend überschreiben.
3.) dein gamePanel erbt von jpanel und zeichnet alles drauf, enthält eine ArrayList<Sprite> um flugzeuge und sonstiges zu speichern. (implementiert runnable)
4.) dein jframe, dass das panel hinzufügt und es als thread speichert.

wie das ganze aussehen könnte werde ich dir gleich posten, als kleines funktionierendes beispiel, kannst es ja dann weiter ausbauen, oder wenn es dir nicht geflällt zumindest anschauen, wie sowas aufgebaut werden könnte
 

Kampfzwereg

Bekanntes Mitglied
ok.danke aber. es soll kein spiel werden. man soll nur auf knopfdruck flugzeuge hinzufügen, die dann landen, soundso lange warten und weiter fleigen. und die reiheh sich dann ein und warten bis sie abgearbeitet werden.
Ich werd mir auf jedenfall den Quellcode von dir angucken. doch das was du sagst hört sich so an, als obn ich jetzt quasi nochmal alles neu machen kann.... -.-
 

darkeye2

Bekanntes Mitglied
so, es ist auf die schnelle gemacht und nicht ganz so optimal, aber es sollte passen, das prog hat jetzt 3 klassen
1: Flugzeug speichert alle wichtigen daten (position, warten? ziel position)
2: Flughafen jpanel, dass die flugzeuge zeichnet, können beliebig viele sein
3: FlughafenTest hat die main methode und tut nix, außer ein jframe zu erzeugen, in dem das panel angezeugt wird, und erzeugt die flugzeuge.

Du kannst selbst festlegen, was passierte, wenn ein flugzeug sein ziel erreicht, im moment passiert dann nix, du kannst auch wie ich schon hinkommentiert habe ein neus ziel angeben, und die zeit, wie lange es warten soll, bis es hinfliegt. kannst das ganze beliebig erweitern, die namen der bilder musst evl. anpassen, hab die grad "vereinfacht" so funktioniert das ganze schon mal, falls noch fragen bestehten, einfach schreiben.

(die flugzeuge können von jedem punkt zu jedem anderen fliegen, hab das zwar nicht optimal gelöst, aber sollte so auch passen)

Flugzeug.java
Java:
import java.awt.Point;

public class Flugzeug {
	
	private int  pasagiere = 0;
	private int pMax = 0;
	private int  posX;
	private int posY;
	private int wait = 0;
	private boolean fertig = false;
	private Point ziel;
	
	public Flugzeug(int startX, int startY, int zielX, int zielY, int  maxPassagiere){
		pMax = maxPassagiere;
		ziel = new Point(zielX, zielY);
		this.posX = startX;
		this.posY = startY;
	}
	
	public void move(){
		if(wait>0){
			wait-=45; //45 zeit zwischen deinen durchgängen
                                                // falls du diese änderst, musst auch hier anpassen
			return;
		}
		int tmpDifX = Math.abs(ziel.x-posX);
		int tmpDifY = Math.abs(ziel.y-posY);
		
		if(!fertig){
			if(tmpDifX>tmpDifY){  //strecke in X richtung länger als in Y
				if(ziel.x>posX){
					posX++;
					double x = posX;
					double m = ((((double)(ziel.y - (posY)))/((double) (ziel.x - (posX-1)))));
					double t = (-m*(posX-1))+(posY);
					posY = (int)((m*x)+t);
				}else{
					posX--;
					double x = posX;
					double m = ((((double)(ziel.y - (posY)))/((double) (ziel.x - (posX+1)))));
					double t = (-m*(posX+1))+(posY);
					posY = (int)((m*x)+t);
				}
			}else{
				if(ziel.y>posY){
					posY++;
					double y = posY;
					double m = ((((double)(ziel.y - (posY-1)))/((double) (ziel.x - (posX)))));
					double t = (-m*posX)+(posY-1);
					posX = (int)((y-t)/m);
				}else{
					posY--;
					double y = posY;
					double m = ((((double)(ziel.y - (posY+1)))/((double) (ziel.x - (posX)))));
					double t = (-m*posX)+(posY+1);
					posX = (int)((y-t)/m);
				}
			}
		}
	}
	
	//neues ziel setzen
	public void setZiel(int x, int y){
		ziel = new Point(x,y);
		fertig = false;
	}
	
	//gibt zurück, wie viele nicht mehr ins flugzeug gepasst haben
	public int einsteigen(int anzahl){
		if((pMax - pasagiere)>= anzahl){
			pasagiere += anzahl;
			return 0;
		}else{
			pasagiere = pMax;
			return anzahl - (pMax-pasagiere);
		}
	}
	
	public void aussteigen(int anzahl){
		pasagiere-=anzahl;
	}
	
	public int getPassagiere(){
		return pasagiere;
	}
	
	//gibt zurück, ob das flugzeug das ziel erreicht hat
	public boolean zielErreicht(){
		fertig = ((ziel.x == posX) && (ziel.y == posY));
		return fertig;
	}
	
	//aktuelle position zurückgeben
	public Point getPos(){
		return new Point(posX, posY);
	}
	
	
	//wartet die angegebene anzahl an ms
	public void waitMS(int time){
		wait =  time;
	}

}

Flughafen.java
Java:
import java.awt.Dimension;
import java.awt.Graphics;
import java.awt.image.BufferedImage;
import java.io.File;
import java.io.IOException;
import java.util.ArrayList;

import javax.imageio.ImageIO;
import javax.swing.JPanel;

public class Flughafen extends JPanel implements Runnable{
	private static final long serialVersionUID = 1L;
	
	ArrayList<Flugzeug> arr = new ArrayList<Flugzeug>();
	BufferedImage flugzeug, hintergrund;
	
	public Flughafen(int sizeX, int sizeY){
		super();
		this.setPreferredSize(new Dimension(sizeX, sizeY));
		this.setVisible(true);
		init(); //frafiken laden
	}
	
	public void paintComponent(Graphics g){
		super.paintComponent(g);
		g.drawImage(hintergrund, 0, 0, this);
		for(int i = 0; i<arr.size(); i++){
			g.drawImage(flugzeug, arr.get(i).getPos().x, arr.get(i).getPos().y, this);
		}

	}
	
	public void addFlugzeug(Flugzeug f){
		arr.add(f);
	}
	
	private void init(){
		try{
			flugzeug = ImageIO.read(new File("img/flugzeug.png"));
		    hintergrund = ImageIO.read(new File("img/hintergrund.jpg"));
		}catch(IOException e){
			e.printStackTrace();
		}
	}

	public void run() {
		for(;;){
			for(Flugzeug f:arr){
				if(f.zielErreicht()){
					//f.setZiel(x, y) neues ziel setzen
					//f.waitMS(x) warten, befor zum nächsten ziel fliegen
				}else{
					f.move();
				}
			}
			try {
				Thread.sleep(45);
			} catch (InterruptedException e) {
				e.printStackTrace();
			}
			this.validate();
			this.repaint();
		}
	}

}

FlughafenTest.java
Java:
import java.awt.Dimension;
import java.awt.FlowLayout;

import javax.swing.JFrame;

public class FlughafenTest extends JFrame{
	private static final long serialVersionUID = 1L;
	
	
	private Flughafen hafen = new Flughafen(300, 300);
	
	public FlughafenTest(){
		this.getContentPane().setLayout(new FlowLayout());
		this.getContentPane().add(hafen);
		this.setSize(new Dimension(310,310));
		hafen.addFlugzeug(new Flugzeug(300,200,100,20,0));
		
		this.setVisible(true);
		new Thread(hafen).start();
	}
	
	
	

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

	}

}
 

Kampfzwereg

Bekanntes Mitglied
aaaaalso:
danke erstmal. sieht sinnvoll aus. ich gucks mir nochmal genauer an, wenn ich wieder komme( bin das WE weg).

aaaber: ne Schlange würd ich generell mit Nodes machen, die dann die Objekte speichern. Ist der standatisierte Weg.
 
K

Kapfzwereg2

Gast
Hi.hier is Kampzwereg. Ich musste mir, da ich mein PW vergessen hab eins zuschicken , was ich jetzt nciht auswendig weiß. also bin ich mal in zivil :).
also die Sache ist die. Ich hab halt vorgaben von meinem Lehrer, wie ich die machen soll...undzwar mit ner schlange, die Nodes hat.
Ich hab mir hier jetzt nochmal was zusammengebastelt. Ich hab das nur mit nem jFrame gemacht un ner paint() methode. Außerdem halt auch mit Nodes. Nimms mir nicht übel. Ich glaub dir, dass deine variante schneller ist. Aber ich würds gern (erstmal) so machen, wie ich das glaube. Ich denke das versteht man.
Fänds trotzdem cool wenn jemand nochmal rüber guckst. Hab zwar keine Fehler mehr beim Compilen, aber wenn ichs ausführe kommt nen NullPointException.Hab geguckt müsste eigentlich laufen. Hab auch einfach mal genau sovile esachen gezeichnet, wie erstelt werden, dann dürfte die exceptioon eigentlich ncith kommen.

Ich weiß jetzt, dass meine variante nicht rentabel ist, würde jemand trotzdem nochmal rübergücken und mir nur sagen, was speziell an meinen Prog nicht geht?

@Darkeye2 ich hoffe du bist nicht sauer :)

Lg Kampfzwereg
 
K

Kampfzwereg3

Gast
hier der Quellcode
Java:
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import javax.swing.event.*;
import java.awt.image.*;
import javax.imageio.*;
import java.io.*;

/**
  *
  * Beschreibung
  *
  * @version 1.0 vom 15.01.2012
  * @author
  */

public class Flughafen extends JFrame implements Runnable {
  // Anfang Attribute



  private Thread t = new Thread(this);
  private BufferedImage imgHintergrund = null;
  private BufferedImage imgFlugzeug = null;
  private boolean besetzt= false;
  private QueueNEU schlange = new QueueNEU();
  private int FlugzeugeZuErstellen=2;
  private JButton jBneuesFlugzeug = new JButton();
  // Ende Attribute

  public Flughafen(String title) {
    // Frame-Initialisierung
    super(title);
    t.start();
    setDefaultCloseOperation(WindowConstants.DISPOSE_ON_CLOSE);
    int frameWidth = 480;
    int frameHeight = 320;
    setSize(frameWidth, frameHeight);
    Dimension d = Toolkit.getDefaultToolkit().getScreenSize();
    int x = (d.width - getSize().width) / 2;
    int y = (d.height - getSize().height) / 2;
    setLocation(x, y);
    Container cp = getContentPane();
    cp.setLayout(null);

    // Anfang Komponenten

    jBneuesFlugzeug.setBounds(0, 232, 281, 33);
    jBneuesFlugzeug.setText("neues Flugzeug");
    jBneuesFlugzeug.setMargin(new Insets(2, 2, 2, 2));
    jBneuesFlugzeug.addActionListener(new ActionListener() {
      public void actionPerformed(ActionEvent evt) {
        jBneuesFlugzeug_ActionPerformed(evt);
      }
    });
    cp.add(jBneuesFlugzeug);
    // Ende Komponenten

    setResizable(false);
    setVisible(true);
  }

  // Anfang Methoden
  public  void run()                                                              //eine Methode die durchgehen läuft.
  {
    while(true)
    {
       try
       {
       imgFlugzeug = ImageIO.read(new File("img/flugzeugneu2.png"));               //als erstes wird der Hintergrund erstellt
       imgHintergrund = ImageIO.read(new File("img/hintergrund.jpg"));             //und das Flugzeug
       }
       catch(IOException e)
       {

       }
       repaint();                                                                  //dann werden diese gezeichnet
//       if(FlugzeugeZuErstellen>0)                                                  //Mittels eines Buttons kann man Flugzeuge erstellen
//       {
          schlange.enqueue(new Flugzeug(1+(int)(Math.random()*1),0));
//          schlange.enqueue(new Flugzeug(1+(int)(Math.random()*1),0));
//          FlugzeugeZuErstellen--;
//       }
        repaint();

       if(((Flugzeug)schlange.front()).getPos()<480)                                //Ist das Flugezug aus dem Bild geflogen?
       {
          if(!besetzt)                                                              //Wenn die Landebahn nicht besetzt ist
          {
            if(((Flugzeug)schlange.front()).getPos()<400)                           //und das Flugzeug noch nich den Landepunkt passiert hat
            {
               ((Flugzeug)schlange.front()).setPos(((Flugzeug)schlange.front()).getPos()+1);//soll er sich bewegen
            }
            else if(((Flugzeug)schlange.front()).getPos()==400)                     //wenn er auf dem Landepunkt ist, soll (vorerst) nur der der Punkt als besetzt angezeigt werden
            {
              besetzt = true;
            }
          }
          else
          {
            if(((Flugzeug)schlange.front()).getPos()<400)                            //wenn der Landepunkt besetzt ist,soll er bis zu diesem Fliegen und nichts tun
            {
              ((Flugzeug)schlange.front()).setPos(((Flugzeug)schlange.front()).getPos()+1);
            }
          }
       }
       else
       {                                                                            //wenn das Flugzeug nicht mehr im Bild ist, wir es wieder auf Position 0 gesetzt.
         ((Flugzeug)schlange.front()).setPos(0);                                    // später wird es aus der Schlange entfernt und die Landebahn wieder freigegeben.
         besetzt= false;
       }

       repaint();
       this.waiting(50);
       
    }
  }


  public void paint(Graphics g)                                                     //Die Methode die (vorerst bis zu 2 Flugzeuge Zeichnet.
  {
     super.paint(g);
     {
       g.drawImage(imgHintergrund,0,0,this);
       g.drawImage(imgFlugzeug,((Flugzeug)schlange.getFirst().getNext().getObject()).getPos(),155,this);
       //g.drawImage(imgFlugzeug,((Flugzeug)schlange.getFirst().getNext().getObject()).getPos(),155,this);
     }

  }
  

  
  
  
  public static void waiting (int n)                                                 //Eine Methode, die n Millisekunden wartet.
  {

        long t0, t1;

        t0 =  System.currentTimeMillis();

        do{
            t1 = System.currentTimeMillis();
        }
        while ((t1 - t0) < (n)*1000);
   }

  









  public void jBneuesFlugzeug_ActionPerformed(ActionEvent evt) {
    // TODO hier Quelltext einfügen
  }

  // Ende Methoden

  public static void main(String[] args)
  {
    new Flughafen("Flughafen");

  }
}
 

darkeye2

Bekanntes Mitglied
also ich werde mir deinen code heute abend mal genauer anschauen, aber probier doch mal den thread erst am ende des constructors zu starten, also als letztes (nach setVisible(true));
 

Kampfzwereg

Bekanntes Mitglied
wie gesagt...ich hätte gernen eine Lösung im Bezug auf meinen Quelltext....
Hier die Fehlermeldung:

Java:
Starte L:\Schule\Informatik\Projekte JavaE\Flughafen\Flughafen.java

Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException
	at Flughafen.paint(Flughafen.java:125)
	at javax.swing.RepaintManager.paintDirtyRegions(RepaintManager.java:781)
	at javax.swing.RepaintManager.paintDirtyRegions(RepaintManager.java:728)
	at javax.swing.RepaintManager.prePaintDirtyRegions(RepaintManager.java:677)
	at javax.swing.RepaintManager.access$700(RepaintManager.java:59)
	at javax.swing.RepaintManager$ProcessingRunnable.run(RepaintManager.java:1621)
	at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:251)
	at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:705)
	at java.awt.EventQueue.access$000(EventQueue.java:101)
	at java.awt.EventQueue$3.run(EventQueue.java:666)
	at java.awt.EventQueue$3.run(EventQueue.java:664)
	at java.security.AccessController.doPrivileged(Native Method)
	at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:76)
	at java.awt.EventQueue.dispatchEvent(EventQueue.java:675)
	at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:211)
	at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:128)
	at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:117)
	at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:113)
	at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:105)
	at java.awt.EventDispatchThread.run(EventDispatchThread.java:90)
Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException
	at Flughafen.paint(Flughafen.java:125)
	at javax.swing.RepaintManager.paintDirtyRegions(RepaintManager.java:781)
	at javax.swing.RepaintManager.paintDirtyRegions(RepaintManager.java:728)
	at javax.swing.RepaintManager.prePaintDirtyRegions(RepaintManager.java:677)
	at javax.swing.RepaintManager.access$700(RepaintManager.java:59)
	at javax.swing.RepaintManager$ProcessingRunnable.run(RepaintManager.java:1621)
	at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:251)
	at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:705)
	at java.awt.EventQueue.access$000(EventQueue.java:101)
	at java.awt.EventQueue$3.run(EventQueue.java:666)
	at java.awt.EventQueue$3.run(EventQueue.java:664)
	at java.security.AccessController.doPrivileged(Native Method)
	at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:76)
	at java.awt.EventQueue.dispatchEvent(EventQueue.java:675)
	at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:211)
	at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:128)
	at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:117)
	at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:113)
	at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:105)
	at java.awt.EventDispatchThread.run(EventDispatchThread.java:90)
 

pro2

Bekanntes Mitglied
Die Fehlermeldung ist eindeutig..
[JAVA=125]g.drawImage(imgFlugzeug,((Flugzeug)schlange.getFirst().getNext().getObject()).getPos(),155,this);[/code]
Da ist ein Objekt null. Entweder bleibt
Code:
imgFlugzeug
null, dein schlangen Object oder this (was unwahrscheinlich ist). Einfach mal n bisschen rumspielen..
 

darkeye2

Bekanntes Mitglied
also deine fehlermeldung weißt ja auf diese zeile hin:
Java:
g.drawImage(imgFlugzeug,((Flugzeug)schlange.getFirst().getNext().getObject()).getPos(),155,this);
da rufst du ja drawImage auf, mit parametern bild -> imgFlugzeug, xPos -> deine methode, yPos -> 155, Observer -> dein JFrame.
Da dein JFrame als Observer keine probleme macht und auch 155 ein gültiger y-wert ist, bleiben nur noch imgFlugzeug und deine konstruktion da übrig, die den fehler verursachen können.

du lädst deine bilder immer noch bei jedem schleifendurchgang, was eine fehlerquelle ist, und UNBEDINGT zu vermeiden ist, weil:
stell dir vor, dein thread braucht etwas zeit zum starten, also die this.setVisible(true) kommt zuerst dran, und deine methode paint will jetzt das JFrame zeichnen, und da du die paint methode überschrieben hast, wird da auch das flugzeug und der hintergrund gezeichnet, ABER dein thread der das bei jedem durchgang lädt ist noch gar nicht soweit, dann sind die bilder beide null, also nicht vorhanden, variable ist nicht initialisiert.
Mach den rest so wie du es für richtig hälst, aber das ist ein sehr grober fehler!

um zu sehen, ob es daran liegt, kannst du abfragen, ob deine bilder schon da sind:
if(imgFlugzeug == null)
System.out.println("Bild nicht da!!");

ich vermute aber, dass es hier nicht am bild liegt, auch wenn es durchaus möglich wäre.

Ich denke, deine konstruktion funktioniert nicht ganz, bist du sicher, dass der erste Node eine verweis auf den zweiten hat (getNext())? dann castest du den ja zu einem object und dann zu einem flugzeug, hast du geprüft, ob das funktioniert hat? und zu guter letzt, was gibt die methode getPos zurück, ist es ein gültiger integer?
Um das alles zu prüfen füge bitte folgenden code VOR die betroffene zeile hinzu, und poste dann die ausgaben.
Java:
if(imgFlugzeug == null)
   System.out.println("Bild [Flugzeug] nicht da!!");
System.out.println("ist getFirst null?: "+ (schlange.getFirst() == null));
System.out.println("ist getNext null?: "+ (schlange.getFirst().getNext() == null);
System.out.println("Ist das object ein Flugzeug?: "+(((Flugzeug)schlange.getFirst().getNext().getObject()) instanceof Flugzeug));
System.out.println("x position: "+((Flugzeug)schlange.getFirst().getNext().getObject()).getPos());
 

Kampfzwereg

Bekanntes Mitglied
also .... ich habs zum laufen gebracht. Passt auch alles.
Habe , wie befohlen :) , den Hintergrund nur einmal am anfang initialisiert.
Einen kleinen Schönheitsfehler hab ich aber noch. Er soll mir halt mejhrewre Flugzeuge zeichnen. Macht er auch. Doch nur mein erstes wird durchgehend angezeigt. Die anderen blitzen alle 5 Sekunden mal ne Millisekunde lang auf. Aber so stark ruckeln tut das Bild an sich nicht. Sieht nicht so aus, als sei das nicht-Zeichnen eine Folge eines uneffektiven Quellcodes.Gibts da spontan noch ne andere Möglichkeit.

Hier mal der Quellcode der Beiden klassen, an denen ich rumgedoktort haben, Flughafen und Flugzeug:

Java:
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import javax.swing.event.*;
import java.awt.image.*;
import javax.imageio.*;
import java.io.*;

/**
  *
  * Beschreibung
  *
  * @version 1.0 vom 15.01.2012
  * @author
  */

public class Flughafen extends JFrame implements Runnable {
  // Anfang Attribute



  private Thread t = new Thread(this);
  private BufferedImage imgHintergrund = null;
  private BufferedImage imgFlugzeug = null;
  private boolean besetzt;
  private QueueNEU schlange = new QueueNEU();
  private int FlugzeugeZuErstellen=3;
  private int zeitZaehler=300;

  // Ende Attribute

  public Flughafen(String title) {
    // Frame-Initialisierung
    super(title);
    t.start();
    setDefaultCloseOperation(WindowConstants.DISPOSE_ON_CLOSE);
    int frameWidth = 480;
    int frameHeight = 320;
    try
    {

       imgHintergrund = ImageIO.read(new File("img/hintergrund.jpg"));
    }
    catch(IOException e)
    {
    }
    setSize(frameWidth, frameHeight);
    Dimension d = Toolkit.getDefaultToolkit().getScreenSize();
    int x = (d.width - getSize().width) / 2;
    int y = (d.height - getSize().height) / 2;
    setLocation(x, y);
    Container cp = getContentPane();
    cp.setLayout(null);

    // Anfang Komponenten

    // Ende Komponenten

    setResizable(false);
    setVisible(true);
  }

  // Anfang Methoden
  public  void run()
  {
      while(true)
      {
       try
       {
       imgFlugzeug = ImageIO.read(new File("img/flugzeugneu2.png"));
       }
       catch(IOException e)
       {

       }
         if(FlugzeugeZuErstellen>0)
         {
           if(zeitZaehler==100 || zeitZaehler==280 || zeitZaehler==300)
           {
              schlange.enqueue(new Flugzeug(1+(int)(Math.random()*5),0));
              FlugzeugeZuErstellen--;
              zeitZaehler--;
           }
           else
           {
             zeitZaehler--;
           }
           if(zeitZaehler==0)
           {
             zeitZaehler= 300;
           }

         }
       if(!schlange.isEmpty())
       {
          repaint();
       }
       if(((Flugzeug)schlange.front()).hintermBild())
       {
         schlange.dequeue();
         FlugzeugeZuErstellen++;
         besetzt= false;
       }
       else
       {
          if(schlange.anzahlFlugzeuge==1)
          {
            ((Flugzeug)schlange.front()).checkPos(besetzt);
             besetzt = ((Flugzeug)schlange.front()).getIstBesetzt();
          }
          else if(schlange.anzahlFlugzeuge==2)
          {
            ((Flugzeug)schlange.front()).checkPos(besetzt);
             besetzt = ((Flugzeug)schlange.front()).getIstBesetzt();
            ((Flugzeug)schlange.getFirst().getNext().getObject()).checkPos(besetzt);
             besetzt = ((Flugzeug)schlange.getFirst().getNext().getObject()).getIstBesetzt();
          }
          else if(schlange.anzahlFlugzeuge==3)
          {
             ((Flugzeug)schlange.front()).checkPos(besetzt);
             besetzt = ((Flugzeug)schlange.front()).getIstBesetzt();
            ((Flugzeug)schlange.getFirst().getNext().getObject()).checkPos(besetzt);
             besetzt = ((Flugzeug)schlange.getFirst().getNext().getObject()).getIstBesetzt();
             ((Flugzeug)schlange.getFirst().getNext().getNext().getObject()).checkPos(besetzt);
             besetzt = ((Flugzeug)schlange.getFirst().getNext().getNext().getObject()).getIstBesetzt();
          }
       }
       this.waiting(40);
       
    }
  }
  public void paint(Graphics g)
  {
     super.paint(g);
     {
       g.drawImage(imgHintergrund,0,0,this);
       g.drawImage(imgFlugzeug,((Flugzeug)schlange.front()).getPos(),148,this);
       if(schlange.anzahlFlugzeuge==2)
       {
         g.drawImage(imgFlugzeug,((Flugzeug)schlange.getFirst().getNext().getObject()).getPos(),148,this);
       }
       else if(schlange.anzahlFlugzeuge>2)
       {
         g.drawImage(imgFlugzeug,((Flugzeug)schlange.getFirst().getNext().getObject()).getPos(),148,this);
         g.drawImage(imgFlugzeug,((Flugzeug)schlange.getFirst().getNext().getNext().getObject()).getPos(),148,this);
       }
     }

  }

   public static void waiting (int n)
   {
            try {
                Thread.sleep(n);
            } catch (InterruptedException e) {
                e.printStackTrace();
            }
   }
  public boolean getBesetzt() {
    return besetzt;
  }

  // Ende Methoden

  public static void main(String[] args)
  {
    new Flughafen("Flughafen");

  }
}

Java:
/**
  *
  * Beschreibung
  *
  * @version 1.0 vom 13.01.2012
  * @author
  */

public class Flugzeug
{

  // Anfang Attribute
  private int anzahlPassagiere;
  private int pos=0;
  private int zeitZaehler=0;
  private boolean istBesetzt;
  // Ende Attribute

  public Flugzeug(int x, int pPos)
  {
    this.anzahlPassagiere = x;
    this.pos=pPos;
  }

  // Anfang Methoden
  public int getAnzahlPassagiere() {
    return anzahlPassagiere;
  }

  public void setAnzahlPassagiere(int anzahlPassagiere) {
    this.anzahlPassagiere = anzahlPassagiere;
  }

  public int getPos() {
    return pos;
  }

  public void setPos(int pos) {
    this.pos = pos;
  }
  
  public void checkPos(boolean pIstBesetzt)
  {


      if(!pIstBesetzt)
      {
        if(this.getPos()<420)
        {
           this.setPos(this.getPos()+1);
        }
        else if(this.getPos()==420)
        {

          if(zeitZaehler==0)
          {
            zeitZaehler= (100*this.getAnzahlPassagiere());
            istBesetzt = true;
          }
        }
      }
      else
      {
        if(this.getPos()<420)
        {
          this.setPos(this.getPos()+1);
        }
        else
        {
          if(zeitZaehler>0)
          {
             zeitZaehler--;
          }
          else
          {
            this.setPos(this.getPos()+1);
            istBesetzt=false;
          }

        }

      }


  }
  public boolean hintermBild()
  {


       if(this.getPos()>480)
       {
         return true;
       }
       else
       {
         return false;
       }

  }

  public boolean getIstBesetzt() {
    return istBesetzt;
  }

  public void setIstBesetzt(boolean istBesetzt) {
    this.istBesetzt = istBesetzt;
  }

  // Ende Methoden
}
 

darkeye2

Bekanntes Mitglied
[hi, also befor ich dir lösungen vorschlage, ich kann dir genau sagen, woran das aufflackern liegt, wenn es bei dir flackert, wärend ein flugzeug wartet^^, deine methode waiting, die millisekunden zählt, bewirkt genau so wie thread.sleep, dass der ganze thread wärend dessen beschäftigt ist und somit nix machen kann, wie ich im oberen (vollständigen) beispiel gezeigt habe, muss man das warten der flugzeuge anders realisieren, ansonsten schaue ich mir gleich mal deinen code an, um zu sehen, ob das noch andere ursachen hat.]

ok, bin mir nicht sicher, aber das scheinst du schon geändert zu haben, werde es mal kurz bei mir ausprobieren, um zu sehen, was genau passiert


und bitte, lad auch das bild fürs flugzeug gleich von anfang an und nicht bei jedem durchlauf!!!*
und das t.start gehört auch ans ende des constructors, wenn alles fertig initialisiert ist.


*: dein construct hier:
Java:
while(true)
      {
       try
       {
       imgFlugzeug = ImageIO.read(new File("img/flugzeugneu2.png"));
       }
       catch(IOException e)
       {
 
       }
...

wäre, wenn du es mal auf ein reelles beispiel überträgst, sowas hier:
stell dir vor, du schreibst ein wort, buchstabe für buchstabe (jeder buchstabe steht für einen schleifendurchgang), und nun nimmst du vor jedem buchstaben eine neue Tastatur her (das ständige laden des bildes), wäre es da nicht schlauer, bereits vor dem schreiben (im constructor) eine vollständige tastatur und alles andere was du brauchst zu nehmen, um dann solche zeitaufwendigen sachen nicht ständig nochmal zu machen?


EDIT: könntest du mal bitte deine aktuelle klasse Node und QueueNEU posten?
also bei mir flackert dein teil generell, was aber auch am jframe liegen könnte, das ist ja nicht doublebuffered, aber bin grad noch auf der suche nach deinem fehler


ALSO, hab kleine änderungen vorgenommen, an deiner Flughafen klasse, es flackert zwar immer noch, aber es wird alles angezeigt, wenn es bei dir nicht so ist, schreib bitte dein os.
(das flackern ist beim jframe normal)
Java:
import java.awt.*;
import javax.swing.*;
import java.awt.image.*;
import javax.imageio.*;
import java.io.*;
 
/**
  *
  * Beschreibung
  *
  * @version 1.0 vom 15.01.2012
  * @author
  */
 
public class Flughafen extends JFrame implements Runnable {
  // Anfang Attribute
 
 
 
  private Thread t = new Thread(this);
  private BufferedImage imgHintergrund = null;
  private BufferedImage imgFlugzeug = null;
  private boolean besetzt;
  private QueueNEU schlange = new QueueNEU();
  private int FlugzeugeZuErstellen=3;
  private int zeitZaehler=300;
 
  // Ende Attribute
 
  public Flughafen(String title) {
    // Frame-Initialisierung
    super(title);
    this.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
    int frameWidth = 480;
    int frameHeight = 320;
    try
    {
       imgFlugzeug = ImageIO.read(new File("img/flugzeugneu2.png"));
       imgHintergrund = ImageIO.read(new File("img/hintergrund.jpg"));
    }
    catch(IOException e)
    {
    }
    this.setSize(frameWidth, frameHeight);
    Dimension d = Toolkit.getDefaultToolkit().getScreenSize();
    int x = (d.width - getSize().width) / 2;
    int y = (d.height - getSize().height) / 2;
    this.setLocation(x, y);
    Container cp = getContentPane();
    cp.setLayout(null);
 
    // Anfang Komponenten
 
    // Ende Komponenten
 
    setResizable(false);
    setVisible(true);
    t.start();
  }
 
  // Anfang Methoden
  public  void run()
  {
      while(true)
      {
         if(FlugzeugeZuErstellen>0)
         {
           if(zeitZaehler==100 || zeitZaehler==280 || zeitZaehler==300)
           {
              schlange.enqueue(new Flugzeug(1+(int)(Math.random()*5),0));
              FlugzeugeZuErstellen--;
           }
           zeitZaehler--;
           if(zeitZaehler==0)
           {
             zeitZaehler= 300;
           }
 
         }
       if(!schlange.isEmpty())
       {
    	  validate();
          repaint();
       }
       if(((Flugzeug)schlange.front()).hintermBild())
       {
         schlange.dequeue();
         FlugzeugeZuErstellen++;
         besetzt= false;
       }
       else
       {
          if(schlange.anzahlFlugzeuge==1)
          {
            ((Flugzeug)schlange.front()).checkPos(besetzt);
             besetzt = ((Flugzeug)schlange.front()).getIstBesetzt();
          }
          else if(schlange.anzahlFlugzeuge==2)
          {
            ((Flugzeug)schlange.front()).checkPos(besetzt);
             besetzt = ((Flugzeug)schlange.front()).getIstBesetzt();
            ((Flugzeug)schlange.getFirst().getNext().getObject()).checkPos(besetzt);
             besetzt = ((Flugzeug)schlange.getFirst().getNext().getObject()).getIstBesetzt();
          }
          else if(schlange.anzahlFlugzeuge==3)
          {
             ((Flugzeug)schlange.front()).checkPos(besetzt);
             besetzt = ((Flugzeug)schlange.front()).getIstBesetzt();
            ((Flugzeug)schlange.getFirst().getNext().getObject()).checkPos(besetzt);
             besetzt = ((Flugzeug)schlange.getFirst().getNext().getObject()).getIstBesetzt();
             ((Flugzeug)schlange.getFirst().getNext().getNext().getObject()).checkPos(besetzt);
             besetzt = ((Flugzeug)schlange.getFirst().getNext().getNext().getObject()).getIstBesetzt();
          }
       }
       waiting((int)Math.round(1000.0/60.0));
       
    }
  }
  public void paint(Graphics g)
  {
     super.paint(g);
       g.drawImage(imgHintergrund,0,0,this);
       g.drawImage(imgFlugzeug,((Flugzeug)schlange.front()).getPos(),148,this);
       if(schlange.anzahlFlugzeuge==2)
       {
         g.drawImage(imgFlugzeug,((Flugzeug)schlange.getFirst().getNext().getObject()).getPos(),148,this);
       }
       else if(schlange.anzahlFlugzeuge>2)
       {
         g.drawImage(imgFlugzeug,((Flugzeug)schlange.getFirst().getNext().getObject()).getPos(),148,this);
         g.drawImage(imgFlugzeug,((Flugzeug)schlange.getFirst().getNext().getNext().getObject()).getPos(),148,this);
       }
     
 
  }
 
   public static void waiting (int n)
   {
            try {
                Thread.sleep(n);
            } catch (InterruptedException e) {
                e.printStackTrace();
            }
   }
  public boolean getBesetzt() {
    return besetzt;
  }
 
  // Ende Methoden
 
  public static void main(String[] args)
  {
    new Flughafen("Flughafen");
 
  }
}
 
Zuletzt bearbeitet:

Kampfzwereg

Bekanntes Mitglied
hm.... also ich hatte das initialisieren des Flugszeugs auch am anfang gemacht. da wurd mir aber kein bild angezeigt. alles nur graus .nur alle 2 seklunden blitze mal gaaanz kurz etwas auf. ich seh dann zwar zwar alle Flugzeuge, aber nur ne millisekunde lang -.-
als ich das mit den flugzeug aber in der run Methode hatte und am afnang nur der Hintergrund initialisiert wurde gings noch a bissel.

Java:
/**
  *
  * Beschreibung
  *
  * @version 1.0 vom 22.11.2011
  * @author
  */

public class Node {

  // Anfang Attribute
  private Node next;
  private Object object;
  // Ende Attribute

  public Node(Object pObject, Node nextNode) {
    this.next = nextNode;
    this.object = pObject;
  }

  // Anfang Methoden
  public Node getNext() {
    return next;
  }

  public void setNext(Node next) {
    this.next = next;
  }

  public Object getObject() {
    return object;
  }

  public void setObject(Object object) {
    this.object = object;
  }

  // Ende Methoden
}

Java:
/**
  *
  * Beschreibung
  *
  * @version 1.0 vom 12.01.2012
  * @author
  */

public class QueueNEU {

  // Anfang Attribute
  public Node first; //der forderste Knoten
  public Node last;  //der hinterste Knoten
  public int anzahlFlugzeuge=0;
  // Ende Attribute

  public QueueNEU() {
  }

  // Anfang Methoden
  public boolean isEmpty()
  {
    if(first == null)
    {
       return true;
    }
    else
    {
       return false;
    }

  }

  public void dequeue()
  {
     if(isEmpty())
     {
     }
     else if(first==last)
     {
       first= null;
       last= null;
       anzahlFlugzeuge--;
     }
     else
     {
        first= first.getNext();
        anzahlFlugzeuge--;
     }
  }

  public void enqueue(Object pObject)
  {
     if(isEmpty())
     {
       first = new Node(pObject, null);
       last= first;
       anzahlFlugzeuge++;
     }
     else if(first==last)
     {
       last= new Node(pObject, null);
       first.setNext(last);
       anzahlFlugzeuge++;
     }
     else
     {
       last.setNext(new Node(pObject, null));
       last = last.getNext();
       anzahlFlugzeuge++;
       
     }
  }

  public Object front()
  {
    if(isEmpty())
    {
      return null;
    }
    else
    {
      return first.getObject();
    }

  }



  public int getAnzahlFlugzeuge() {
    return anzahlFlugzeuge;
  }

  public Node getFirst() {
    return first;
  }

  public Node getLast() {
    return last;
  }

  // Ende Methoden
}
 
Zuletzt bearbeitet:

darkeye2

Bekanntes Mitglied
also dein code (unverändert) funktioniert bei mir grad, es flackert ganz leicht, aber ansonsten geht alles, ist nicht optimal, aber es funktioniert, welches os hast du?
 

darkeye2

Bekanntes Mitglied
os = operating system, also auf deutsch Betriebssystem (BS), also windows (wenn ja, welche version, xp, vista, ...) oder linux (ubuntu, suse, ...) oder nen mac?
(gibt noch mehr, aber meistens nicht im privaten haushalt^^)
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
N Klassen Hintergrundfarbe in JPanel ändert sich nicht Java Basics - Anfänger-Themen 3
KogoroMori21 Wann ist der richtige Zeitpunkt, um sich Hilfe zu suchen? (Bin Informatik-Student) Java Basics - Anfänger-Themen 10
N Hey Leute und zwar versuche ich gerade ein 2D Spiel zu Programmieren aber die Figur will sich nicht nach links oder rechts bewegen :( Java Basics - Anfänger-Themen 12
T code so schreiben das er von sich selber anpasst (code soll die anzahl aller bustaben bestimmen) Java Basics - Anfänger-Themen 16
P Probleme mit NetBeans: Wie lässt sich jar. Datei an einem MacBook öffnen Java Basics - Anfänger-Themen 21
G Variable aktualisiert sich nicht in rekursiver Methode Java Basics - Anfänger-Themen 4
F abbruch Exception lässt sich nicht erstellen Java Basics - Anfänger-Themen 2
G jar file lässt sich nicht öffnen Java Basics - Anfänger-Themen 1
xaerez Threads Boolean Wert verändert sich nicht Java Basics - Anfänger-Themen 5
xaerez Threads Boolean Wert verändert sich nicht Java Basics - Anfänger-Themen 4
berserkerdq2 Spiel hängt sich immer in der 4 Runde auf, obwohl ich jede Runde das gleiche mache Java Basics - Anfänger-Themen 1
GoenntHack Java Text von JLabel verändert sich nicht Java Basics - Anfänger-Themen 1
E multiple Timer die sich nicht summieren Java Basics - Anfänger-Themen 12
J Mein Java Programm lässt sich nicht mehr bearbeiten Java Basics - Anfänger-Themen 2
A Konsolenausgabe verschiebt sich Java Basics - Anfänger-Themen 8
M Wie lassen sich Konstanten in Bedingung stellen? Java Basics - Anfänger-Themen 1
M Wie lassen sich Objektkonstanten initialisieren, wenn sie eine Bedingung erreichen? Java Basics - Anfänger-Themen 6
P Mein Programm wird zwar erfolgreich Compiliert, öffnet sich aber nicht Java Basics - Anfänger-Themen 6
I Probleme mit OutputStream - Datei lässt sich nicht öffnen Java Basics - Anfänger-Themen 4
B Programm beendet sich nicht und weiteres seltsames Verhalten Java Basics - Anfänger-Themen 9
Nina Pohl Ein Vorgang bezog sich auf ein Objekt, das kein Socket ist Java Basics - Anfänger-Themen 6
H 36 Zufallszahlen die sich nicht wiederholen Java Basics - Anfänger-Themen 27
E Warum lässt sich eine Klasse nicht starten, wenn eine andere Klasse in dem Modul fehlerhaft ist? Java Basics - Anfänger-Themen 1
IamArctic Quaxli Tutorial, Rotorblätter bewegen sich nicht mehr Java Basics - Anfänger-Themen 4
M Java GUI label ändert sich erst zum Schluss Java Basics - Anfänger-Themen 4
H Liste speichern. Was lässt sich verbessern? Java Basics - Anfänger-Themen 7
X Kurzes Java-Programm, das sich komisch verhält Java Basics - Anfänger-Themen 6
J CMD schließt sich automatisch Java Basics - Anfänger-Themen 5
S Was für Aufgaben könnten sich hier hinter verbergen? Java Basics - Anfänger-Themen 5
M Wie kann ich ein Objekt erstellen, wenn sich der Klassenname in einer Variablen befindet? Java Basics - Anfänger-Themen 10
F boolean stellt sich auf true Java Basics - Anfänger-Themen 15
H Datentypen Was für eine Format verbirgt sich hinter dem Integer-Wert 053? Java Basics - Anfänger-Themen 2
A Haben KNNs ein Gedächtnis, lernen etwas oder verändern sich, während sie nicht trainieren, aber aktiv sind? Java Basics - Anfänger-Themen 3
M Werte ändern sich nicht mehr nach Reset Java Basics - Anfänger-Themen 14
H Punkt bewegt sich auf einer Ellipse Java Basics - Anfänger-Themen 6
X Erste Schritte boolean wert ändert sich nicht? Java Basics - Anfänger-Themen 6
I Klassen Eine ArrayList<Long>, die sich automatisch sortiert Java Basics - Anfänger-Themen 20
Franzi1001 ScrollBar lässt sich nicht bewegen Java Basics - Anfänger-Themen 4
W Client verbindet sich nicht Java Basics - Anfänger-Themen 14
J Mein Programm beendet sich ohne mein Zutun Java Basics - Anfänger-Themen 9
J Zwei Klassen die sich gegenseitig referenzieren - Bad practice? Java Basics - Anfänger-Themen 4
N Bewegtes Objekt soll sich um eine Parallele bewegen Java Basics - Anfänger-Themen 0
K Zufalsszahl soll sich nicht wiederholen Java Basics - Anfänger-Themen 9
C Classpath Compiler lässt sich nur bedingt von Kommandozeile aus starten Java Basics - Anfänger-Themen 17
CptK Datentypen Objekt lässt sich nicht zu arraylist hinzufügen Java Basics - Anfänger-Themen 2
L Mein Taschenrechner lässt sich plötzlich nicht mehr öffnen Java Basics - Anfänger-Themen 5
CptK Interface JLabel bewegt sich nicht sondern teleportiert sich... Java Basics - Anfänger-Themen 3
P jar file lässt sich nicht ausführen Java Basics - Anfänger-Themen 4
L Programm lässt sich nicht starten! Java Basics - Anfänger-Themen 1
pkm Interface Funktionales Interface lässt sich nicht implementieren. Java Basics - Anfänger-Themen 2
Hanschyo Programm schließt sich einfach Java Basics - Anfänger-Themen 2
L Panel verkleinert sich unerklärlicherweise Java Basics - Anfänger-Themen 7
J JFrame Fenster öffnet sich nicht Java Basics - Anfänger-Themen 7
x-tshainge Mein Programm lässt sich nicht Starten Java Basics - Anfänger-Themen 8
S Nach dem Herüberschieben eines Arrays zwischen 2 Frames öffnet sich das Frame nicht mehr Java Basics - Anfänger-Themen 12
B Java -Turtle Grafik - kennt sich jemand damit aus? Java Basics - Anfänger-Themen 1
K Sysout wiederholt sich Java Basics - Anfänger-Themen 6
H Wieso öffnet sich der Texteditor? Java Basics - Anfänger-Themen 6
B Classpath Class lässt sich nicht öffnen Java Basics - Anfänger-Themen 3
J Java-Dateien lassen sich nicht editieren Java Basics - Anfänger-Themen 46
T Schleife fährt sich fest Java Basics - Anfänger-Themen 14
E App lässt sich nicht starten Java Basics - Anfänger-Themen 8
ZotacZ Best Practice Lohnt es sich in GWT einzuarbeiten? Java Basics - Anfänger-Themen 4
E Pdf-Document lässt sich im Servlet nicht öffnen Java Basics - Anfänger-Themen 5
G KeyListener und JButton vertragen sich nicht Java Basics - Anfänger-Themen 1
S String ändert sich nicht Java Basics - Anfänger-Themen 2
Bregedur Methoden Matcher und Pattern bei sich wiederholenden Werten Java Basics - Anfänger-Themen 1
P Compiler-Fehler Wo befindet sich hier der Fehler und warum? Java Basics - Anfänger-Themen 21
F MouseMotionListener - Objekt bewegt sich nicht Java Basics - Anfänger-Themen 1
S Erste Schritte Java Applet lässt sich im Browser nicht öffnen Java Basics - Anfänger-Themen 9
G Was hat es mit java.net.* auf sich? Java Basics - Anfänger-Themen 10
X Streams und Ausgabe - lässt sich das einfacher schreiben oder schöner schreiben? Java Basics - Anfänger-Themen 5
J Kann eine .jar sich selber Löschen? Java Basics - Anfänger-Themen 5
OlafHD Java Uhrzeit aktualisiert sich nicht Java Basics - Anfänger-Themen 2
J Java Datei lässt sich nicht kompilieren Java Basics - Anfänger-Themen 3
J Reihenfolge im Vector lässt sich nicht drehen Java Basics - Anfänger-Themen 9
J Wie lässt sich der Konstruktor einer Klasse einer Funktion einer Klasse nutzen. Java Basics - Anfänger-Themen 4
W OOP Zwei Objekte beziehen sich aufeinander (Zirkelbezug)? Java Basics - Anfänger-Themen 4
cezary Server läßt sich nicht starten Java Basics - Anfänger-Themen 2
X wie kann ich in bluej/java einene 2d array mit zahlen fuellen, so dass sich diese in der der zeilen Java Basics - Anfänger-Themen 2
S Variable (int) erhöht sich nicht richtig Java Basics - Anfänger-Themen 18
B Konsole schließt sich sofort Java Basics - Anfänger-Themen 8
Fishmeaker Methoden mit Methoden aufrufen - Programm hängt sich auf Java Basics - Anfänger-Themen 5
F Inhalt einer Variable auswerten, die sich immer wieder ändert Java Basics - Anfänger-Themen 1
T Methoden [GELÖST ]Warum ruft sich die Methode von alleine auf? Java Basics - Anfänger-Themen 3
J Erstes Applet läßt sich nicht anzeigen Java Basics - Anfänger-Themen 2
M Array mit Objekten lässt sich nicht auslesen Java Basics - Anfänger-Themen 10
T Scanner lässt sich nicht importieren Java Basics - Anfänger-Themen 1
Lord.Djerun (Netbeans) Bei TimeUnit.Seconds,Sleep() hängt sich das komplette Programm auf.. Java Basics - Anfänger-Themen 8
P Programm lässt sich nicht starten - Klasse mit Hauptmethode nicht gefunden Java Basics - Anfänger-Themen 9
B Compiler-Fehler [Lejos] [RCX] Programm lässt sich nicht kompilieren Java Basics - Anfänger-Themen 5
N Variablen Array-Variable verändert sich Java Basics - Anfänger-Themen 12
HoloYoitsu BufferedReader verhält sich seltsam Java Basics - Anfänger-Themen 10
S Programm verhält sich in Eclipse anders, als ein eigenständiges Programm Java Basics - Anfänger-Themen 5
N Von Kopf bis Fuss TestArrays lässt sich nicht lösen Java Basics - Anfänger-Themen 5
S Rückgabe-Array lässt sich nicht auslesen, LocalDate mit String Java Basics - Anfänger-Themen 3
dat_vin JFrame öffnet sich mehrmals Java Basics - Anfänger-Themen 6
Bluedaishi Dateien Lassen sich unter windows nicht löschen Java Basics - Anfänger-Themen 8
T GUI öffnet sich nicht Java Basics - Anfänger-Themen 23
G Java lässt sich nicht installieren Java Basics - Anfänger-Themen 1

Ähnliche Java Themen

Neue Themen


Oben