Applet Wieso kann ich keine Array im Applet initialisieren

Kallescw

Mitglied
Hallo,

ich will ein Programm schreiben welches die Vorgehensweise von verschiedenen Sortieralgorhytmen verdeutlich
Meine Idee war 5 unterschiedlich Große Bälle zu zeichnen..und immer die jenigen Bälle, die gerade verlgichen werden, nach rechts zu rücken und dann die Positionen gegebenfalls zu tauschen. ICh habe es bisher nur geschafft die Bälle zu zeichnen.
Dies habe ich so gemacht

Java:
public class Graphikdemo extends Applet
{
    int [] größen={20,50,40,30,10};
    Kreis [] kreise = new Kreis[5];
    public int index =0;
    int l;
  public void init()
   {
 for (int i = 0; i <320; i=i+75) 
      {    
        l=i+(25-größen[index]/2);
        kreise[index] = new Kreis(200,100+l,größen[index]);
        index++; 
    }
    
      }

public void paint(Graphics g)
   {  
      g.drawImage(Hintergrund,0,0,900,525,this);
     
          g.setColor(Color.blue);
          g.fillOval(kreise[0].getX()+verschiebung,kreise[0].getY(),kreise[0].getDurchmesser(),kreise[0].getDurchmesser());
          g.fillOval(kreise[1].getX()+verschiebung,kreise[1].getY(),kreise[1].getDurchmesser(),kreise[1].getDurchmesser());
          g.fillOval(kreise[2].getX()+verschiebung,kreise[2].getY(),kreise[2].getDurchmesser(),kreise[2].getDurchmesser());
          g.fillOval(kreise[3].getX()+verschiebung,kreise[3].getY(),kreise[3].getDurchmesser(),kreise[3].getDurchmesser());
          g.fillOval(kreise[4].getX()+verschiebung,kreise[4].getY(),kreise[4].getDurchmesser(),kreise[4].getDurchmesser());
 }

so und jetzt zu mienen eig Problem:

wenn ich das Applet ausführe wird auch alles gezeichnet..wenn ich jedoch mein Apllet Objekt inspiziere hat mein Array an jeder Stelle den wert Null und somit bekomme ich es nicht hin die Kreise des Arrays zu bewegen.
Entweder ich bin generell zu blöd Kreise zu bewegen oder es liegt wirklich daran das mein Array nicht richtig inspiziert wird

könnt ihr mir weiterhelfen?
 
Zuletzt bearbeitet von einem Moderator:

Marco13

Top Contributor
Wie "inpizierst" du das? Im Debugger? Sicher, dass du das machst, nachdem init() aufgerufen wurde?

Insgesamt sieht das ziemlich wackelig aus, mit der Positions- und Indexberechnung... Und... was ist "verschiebung"?
 

Kallescw

Mitglied
Also ich benutze BlueJ.. und da erstelle ich dann das Objekt und durch ein doppelklick darauf kann man dieses inspizieren...wenn ich die methode init aufrufe kommt ein fehler in zeile 20 : java nullpointerexception.

Die Koordinaten werden aber alle richtig berechnet das funktioniert.. ich kann ja auch das Apllet ausführen dann wird alles perfekt angezeigt.. jettzt geht es halt nur darum ein Kreis zu bewegen. Dafür habe ich auch den int Verschiebung gebraucht... Nur irgendwie funktioniert das nicht so richtig.
ein Versuch einen Kreis zu bwegen war zum beispiel:

public void bewgen()
{
while (verschiebung<100)
{
repaint();
verschiebung++
}
}

abgesehen davon das dies So generell nicht funktionieren könnte... glaube ich das schon der fehler da liegt das dem array die werte nicht richtig zugewiesen werden..
 

Marco13

Top Contributor
Hm... 'init()' wird eigentlich automatisch aufgerufen, wenn man das Applet startet. Von wo aus wird die Methode 'bewegen()' denn aufgerufen?


(Ich werd' mir wohl mal BlueJ installieren müssen - da kommen so oft merkwürdige Fragen dazu... ???:L )
 

Kallescw

Mitglied
ja das ist ja auch so eine Sache die mich wundert.. wenn ich das Applet ausführe kommt keine Fehlermeldung..wenn ich jedech erst ein objekt erstelle und dann die methode init aufrufe kommt die fehlermeldung...die methode bewegen habe ich einfach ganz am ende in der klasse implementiert.
 

Kallescw

Mitglied
also ich weiß nicht ob jemand BlueJ kennt..aber da kann man immer objekte erstellen auch von Apllets.. zumindestens wird eins angezeit in der Objektleiste

in zeile 20 steht: Hintergrund = getImage(getCodeBase(),
"Hintergrund.jpg");

hier ist das ganze Programm:

Java:
]import java.awt.*;
import javax.swing.*;
import java.awt.Color.*;
import java.applet.*;
import java.util.*; 

public class Graphikdemo extends Applet
{
   Image Hintergrund;
    int [] größen={20,50,40,30,10};
    Kreis [] kreise = new Kreis[5];
    public int index =0;
    int l;
    int verschiebung;
  Punkt [] punkte = new Punkt[5];
  int vergleiche;
   
    public void init()
   {
       Hintergrund = getImage(getCodeBase(),
             "Hintergrund.jpg");
             
      
             
    for (int i = 0; i <320; i=i+75) 
      {    
        punkte[index]=new Punkt(180,115+i);
        l=i+(25-größen[index]/2);
        kreise[index] = new Kreis(200,100+l,größen[index]);
        index++; 
    }
    
      }
  
  
public void paint(Graphics g)
   {  
      g.drawImage(Hintergrund,0,0,900,525,this);
     
          g.setColor(Color.blue);
          g.fillOval(kreise[0].getX()+verschiebung,kreise[0].getY(),kreise[0].getDurchmesser(),kreise[0].getDurchmesser());
          g.fillOval(kreise[1].getX()+verschiebung,kreise[1].getY(),kreise[1].getDurchmesser(),kreise[1].getDurchmesser());
          g.fillOval(kreise[2].getX()+verschiebung,kreise[2].getY(),kreise[2].getDurchmesser(),kreise[2].getDurchmesser());
          g.fillOval(kreise[3].getX()+verschiebung,kreise[3].getY(),kreise[3].getDurchmesser(),kreise[3].getDurchmesser());
          g.fillOval(kreise[4].getX()+verschiebung,kreise[4].getY(),kreise[4].getDurchmesser(),kreise[4].getDurchmesser());
          g.setColor(Color.red);
          for(int i=0;i<punkte.length;i++)
          {
          g.fillOval(punkte[i].getX(),punkte[i].getY(),punkte[i].getDurchmesser(),punkte[i].getDurchmesser());
        }
        
}
public void bewegen()
{
verschiebung=200;
repaint();

}

}

die klasse Punkt

Java:
class Punkt{
  private int x;
  private int y;
  private int durchmesser=15;

  public Punkt(int x, int y){
    this.x = x;
    this.y = y;
    
  }
  public int getX(){
     return x;
  }
  public int getY(){
     return y;
  }
  
  public int getDurchmesser(){
     return durchmesser;

    }
    
}

die klasse Kreis
Java:
class Kreis{
  private int x;
  private int y;
  private int durchmesser;

  public Kreis(int x, int y, int durchmesser){
    this.x = x;
    this.y = y;
    this.durchmesser = durchmesser;
  }
  public int getX(){
     return x;
  }
  public int getY(){
     return y;
  }
  public int getDurchmesser(){
     return durchmesser;
  }
  public void setY(int y){
    this.y = y;
  }
  public void setX(int x){
    this.x = x;
}

 
  
}


ich habe mal noch nen bild vom applet angehängt
 

Michael...

Top Contributor
also ich weiß nicht ob jemand BlueJ kennt..aber da kann man immer objekte erstellen auch von Apllets.. zumindestens wird eins angezeit in der Objektleiste
Nur weil man etwas kann muss man es nicht auch machen ;-)
Ein Applet ist nicht dafür gedacht "erstellt" zu werden. Keine Ahnung was z.B. getCodeBase() im Fall einer Erstellung im falschen Kontext so liefert. Vermutlich null weil es diese in diesem Fall nicht gibt.
 

GUI-Programmer

Top Contributor
Die NullPointerException kommt einfach daher, dass dein Image Hintergrund null ist. Das bedeutet dass das Bild nicht gefunden wurde. --> Daher: Das Bild muss sich bei deiner Initialisierung im selben Ordner wie HTML Datei befinden (Diese wird von BlueJ automatisch beim Start des Applets erzeugt). Im übrigen solltest du dein Applet in BlueJ so ausführen: Rechtsklick auf die Applet Klasse -> "Run Applet" bzw. "Applet ausführen".

...wenn ich jedech erst ein objekt erstelle und dann die methode init aufrufe kommt die fehlermeldung...

Das sollst du auch nicht tun, wie dir bereits schon gesagt wurde. Wenn du die Methode aufrufen willst schlage ich dir vor einen Button mit ActionListener zu implementieren. Wenn dieser dann geklickt wird ruft er die Methode auf.


P.S. Genau an deiner Vorgehensweis lässt sich erkennen, wie unsinnig es ist mit BlueJ zu arbeiten: Rechtsklick: new Klasssenname(), mit der Instanz irgendwelche Methoden aufrufen... Das erschwert einen imho das Java lernen. Lieber die Methoden selbst im Programm aufrufen.
 

Kallescw

Mitglied
okey ich werde morgen mal einen neuen verscuh starten.. und versuchen die methoden mithilfe eines Buttons auszuführen
vielen Dank bis hierhin
 
Zuletzt bearbeitet:

GUI-Programmer

Top Contributor
Ganz klarer Fall: Wie bereits erwähnt darf man von einer Applet Klasse keine Instanz bilden und dann erwaren, dass man auch noch geerbte Applet Methoden so ohne weiteres aufrufen kann.

Zur Exception: Sie entsteht meines Wissens dadurch, das versucht wird die Methode getImage aufzurufen, diese jedoch bei diesem Fall immer null zurückgibt da das Applet nicht ordnungsgemäß gestartet wurde. Somit ist es egal ob das Bild vorhanden ist oder nicht, die Methode selbst beinhaltet den Fehler.

Daher: Bei Applets keine Instanz bilden!!!
[TIPP]
Variablen wie etwa größe immer ohne Umlaute und Sonderzeichen schreiben, also hier: groesse.
[/TIPP]
 

Kallescw

Mitglied
Alles klar.vielen Dank für die Mühe!
wer weiß wie lange ich da noch dran rumgedocktort hätte:D
ich werde es morgen nochmal versuchen und auf gar keinen fall Instanzen bilden ;)
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
M Wieso verändert sich die Framerate nach erneutem Starten des AnimationTimer? AWT, Swing, JavaFX & SWT 18
CptK Wieso wird nur ein Teil meiner Buttons angezeigt? AWT, Swing, JavaFX & SWT 1
J JavaFX CSS einbinden - Wieso will das einfach nicht!!! AWT, Swing, JavaFX & SWT 1
LexeB4F setValueAT geht nicht... wieso? AWT, Swing, JavaFX & SWT 14
Z JComponent's requestFocus() - Wieso nicht immer anwendbar? AWT, Swing, JavaFX & SWT 1
C Wieso nur erster Buchstabe bei Caesar-Entschlüsselung? AWT, Swing, JavaFX & SWT 2
A Swing JTable wird nicht über zurückegebene Referenz geaddet.Wieso nicht? AWT, Swing, JavaFX & SWT 5
K LayoutManager Wieso verschwinden Elemente? AWT, Swing, JavaFX & SWT 20
propra Wieso wird paintComponent() beim Start 2 malausgeführt? AWT, Swing, JavaFX & SWT 4
P 2D-Grafik Wieso wird das Bild nicht angezeigt ? AWT, Swing, JavaFX & SWT 4
T wieso leere Oberfläche? AWT, Swing, JavaFX & SWT 5
G Swing Wieso braucht man nach setVisible mal ein revalidate und mal nicht? AWT, Swing, JavaFX & SWT 8
C Wieso funktionert der CellRenderer nicht? AWT, Swing, JavaFX & SWT 2
L Wieso werden die Icons nicht dargestellt? AWT, Swing, JavaFX & SWT 2
W Wieso SerialVersionUID bei Swing-Komponenten AWT, Swing, JavaFX & SWT 5
N Freiraum in der GUI - Wieso? AWT, Swing, JavaFX & SWT 6
S Wieso Fenster im EDT sichtbar machen? AWT, Swing, JavaFX & SWT 43
M Wieso geht das nicht! AWT, Swing, JavaFX & SWT 3
S animation Flackern trotz doppelpufferung wieso? AWT, Swing, JavaFX & SWT 2
G Wieso wird meine Scrollbar nicht angezeigt? AWT, Swing, JavaFX & SWT 3
K JTable - wieso funktioniert der Autoscroll nicht? AWT, Swing, JavaFX & SWT 5
Paule JFrame bleibt leer, wieso? AWT, Swing, JavaFX & SWT 2
S Wieso werden die Bilder nicht angezeigt? AWT, Swing, JavaFX & SWT 4
G Progressbar aktualisiert sich nicht (vernünftig). WIESO? AWT, Swing, JavaFX & SWT 2
ExceptionOfExpectation JMenu, setMnemonic(Char k) bringt keine Wirkung AWT, Swing, JavaFX & SWT 8
V JavaFX Bild leer und keine Fehlermeldung AWT, Swing, JavaFX & SWT 21
S JavaFX WebView zeigt keine Animation AWT, Swing, JavaFX & SWT 5
ruutaiokwu SWT "Google Window Builder" tut keine jar's ins Projekt rein bei SWT-Projekt AWT, Swing, JavaFX & SWT 22
H String teilen, damit bei JLabel keine Punkte am Ende angezeigt werden AWT, Swing, JavaFX & SWT 4
L Java FX Keine Anzeige Im Tableview AWT, Swing, JavaFX & SWT 4
richis-fragen JTree +/- verschwidet wenn Knoten keine Kinder hat... AWT, Swing, JavaFX & SWT 6
S java.fxml.load.exception und keine automatische Aktualliseriung der Mainausgabe AWT, Swing, JavaFX & SWT 5
F JList zeigt keine Einträge mehr AWT, Swing, JavaFX & SWT 1
G Swing JButton - Keine Klickanimation AWT, Swing, JavaFX & SWT 4
G JavaFX - Während AudioRecording keine Text eingabe TextField möglich AWT, Swing, JavaFX & SWT 6
N Swing JFormattedTextField keine Werte nach Formatzuweisung AWT, Swing, JavaFX & SWT 0
C Swing JList zeigt keine neuen Einträge an AWT, Swing, JavaFX & SWT 1
X Swing Anwendung regaiert auf keine Buttons mehr wärend while(scanner.hasNextLine()) ausgeführt wird. AWT, Swing, JavaFX & SWT 4
D Swing keine JLabel-Aktualisierung bei "externem" Aufruf durch Helferklasse AWT, Swing, JavaFX & SWT 10
D Swing Warum erhalte ich keine Ausgabe? Funktioniert der equals-vergleich in actionPeformed nicht richtig? AWT, Swing, JavaFX & SWT 3
K Swing Keine Reaktion auf Tastatureingaben bei mehreren Buttons??? AWT, Swing, JavaFX & SWT 4
gamebreiti auf usereingabe warten mit GUI(nur Labels, Buttons etc. keine Texteingaben) AWT, Swing, JavaFX & SWT 3
P Swing JTable keine Markierung nach Button klick AWT, Swing, JavaFX & SWT 0
U Frame zeigt keine Komponenten AWT, Swing, JavaFX & SWT 7
H RCP(SWT) Browser-Widget zeigt keine locale HTML-Dateien an AWT, Swing, JavaFX & SWT 1
N JavaFX Keine Dynamic AWT, Swing, JavaFX & SWT 2
W Swing Ausführung einer .jar zeigt keine Reaktion AWT, Swing, JavaFX & SWT 4
D Swing JList keine Selektionsänderung bei "dragged-Maus" AWT, Swing, JavaFX & SWT 4
N Swing JTable mit Sorter: Keine Sortierung bei Klick in Header AWT, Swing, JavaFX & SWT 3
Ollek JList - neuer Eintrag in ArrayList dadurch keine Anzeige der Objekte AWT, Swing, JavaFX & SWT 18
A trotz setSize keine breite AWT, Swing, JavaFX & SWT 4
Q JTable - Keine Spaltennamen AWT, Swing, JavaFX & SWT 3
H Swing Keine Rückmeldung (freeze) bei setVisible(false) oder dispose() AWT, Swing, JavaFX & SWT 4
B JEditorPane lädt keine Schriftfarbe in HTML AWT, Swing, JavaFX & SWT 2
dzim TableView - keine Aktualisierung geänderter Items AWT, Swing, JavaFX & SWT 5
E Keine Ausgabe auf Console und List AWT, Swing, JavaFX & SWT 13
Kenan89 statischer ActionListener keine Wirkung? AWT, Swing, JavaFX & SWT 2
Kenan89 statischer ActionListener keine Wirkung? AWT, Swing, JavaFX & SWT 3
N Swing Netbeans 7.1 keine DesktopApplication mehr möglich ? AWT, Swing, JavaFX & SWT 15
H JTable zeigt keine Daten an AWT, Swing, JavaFX & SWT 5
C Swing JFrame nimmt keine anderen Elemente auf AWT, Swing, JavaFX & SWT 13
A Swing JTable benutzt keine Checkbox für Booleans AWT, Swing, JavaFX & SWT 9
M Swing Focus für Buttons deaktiviert --> keine Reaktion mehr auf Tastendrücke AWT, Swing, JavaFX & SWT 5
E Keine Ausgabe von JList bei drücken von Button auf die Konsole AWT, Swing, JavaFX & SWT 7
C MouseMotionListener fired keine Events mehr wenn in Button AWT, Swing, JavaFX & SWT 2
D Fenster will keine Ausgabe geben>:( AWT, Swing, JavaFX & SWT 3
K Applet erkennt keine Frameverkleinerung AWT, Swing, JavaFX & SWT 5
O keine ähnliche Farben durch Random in Java AWT, Swing, JavaFX & SWT 21
N JFileChooser - Keine Funtkion AWT, Swing, JavaFX & SWT 13
P Kennt awt.list keine Tastatureingabe? AWT, Swing, JavaFX & SWT 3
Y LayoutManager Keine vollständige Darstellung der Tabelle mit GridBagLayout AWT, Swing, JavaFX & SWT 3
H Swing JScrollPane bekommt keine ScrollBars AWT, Swing, JavaFX & SWT 5
bluerob Nach RowSorter -> Keine Tabellenüberschreibung möglich AWT, Swing, JavaFX & SWT 7
V JTextField nimmt keine Eingaben an, nach nachträglichem setVisible des JWindows AWT, Swing, JavaFX & SWT 4
aze JTextField:Keine Markierung AWT, Swing, JavaFX & SWT 6
D Swing keine Tabellen Zeilen ohne Focus AWT, Swing, JavaFX & SWT 7
J Swing JTable, eigener TableCellRenderer Keine Anzeige in den Zellen AWT, Swing, JavaFX & SWT 8
C keine weiteren Events während Drag&Drop Operation möglich? AWT, Swing, JavaFX & SWT 5
Fu3L Keine Transparenten JTextComponents möglich mit Nimbus L&F? AWT, Swing, JavaFX & SWT 5
P 2D-Grafik PaintComponent() übernimmt keine Werte aus update() AWT, Swing, JavaFX & SWT 8
earlgrey_tea AWT KeyListener bekommt keine Signale AWT, Swing, JavaFX & SWT 3
B LayoutManager mischen keine gute Idee? AWT, Swing, JavaFX & SWT 9
O Swing es können keine neuen Labels hinzufügt werden während der Timer läuft AWT, Swing, JavaFX & SWT 14
B JScrollbarPane zeigt keine scrollbars AWT, Swing, JavaFX & SWT 2
I Panel scheint keine Größe zu haben AWT, Swing, JavaFX & SWT 3
aze GridLayout: Keine automatische Ausdehnung AWT, Swing, JavaFX & SWT 2
1 JFrame bleibt leer, keine Ahnung warum AWT, Swing, JavaFX & SWT 7
M SWT keine Scrollbar bei widgets.List und GridLayout AWT, Swing, JavaFX & SWT 2
P SWT Tree - Keine Selection zulassen AWT, Swing, JavaFX & SWT 4
T SWT Keine Anzeige der Widgets nach Comboauswahl AWT, Swing, JavaFX & SWT 2
1 GeneralPath-Kreise werden keine Kreise AWT, Swing, JavaFX & SWT 2
hdi Swing setPreferredSize zeigt keine Änderung AWT, Swing, JavaFX & SWT 2
R AWT [Anfänger] keine atives Aussehen von Buttons AWT, Swing, JavaFX & SWT 4
S Seltsames Problem - manchmal enthaelt die ActionMap eine JTextArea keine Actions. AWT, Swing, JavaFX & SWT 4
A SWT Table hat keine Scrollbar AWT, Swing, JavaFX & SWT 12
B Keine Änderungen an JLabel durch Array möglich AWT, Swing, JavaFX & SWT 12
C Frame repaint hat keine Wirkung AWT, Swing, JavaFX & SWT 6
L Swing JPanel sendet keine KeyEvents AWT, Swing, JavaFX & SWT 22
J Swing - ich sehe keine Linie, andere schon AWT, Swing, JavaFX & SWT 6
S JDialog gibt keine Nachrichten ueber sein Schliessen..? AWT, Swing, JavaFX & SWT 3

Ähnliche Java Themen

Neue Themen


Oben