# Applet nicht initialisiert



## A3XX (31. Mai 2004)

Hi

Heute ist glaub ich nicht mein Tag  :cry: Schon die andere Übung (siehe mein anderes Thema) hab ich irgendwas nicht geschnallt und hier wieder.

Man muss so ein "Kuchendiagramm" zeichnen. Ich würde das Programm gerne testen aber es steht immer "Applet nicht initialisiert" wieso?!?! 


```
package playcards;

import java.awt.*;

public class StringClass {
  private final int startX = 100, startY = 100;
  private final int xSpace = 20, ySpace = 20;
  private String[] array = new String[10];
  private String newValue;
  private boolean newEntry = false;
  private boolean searchEntry = false;
  private boolean foundEntry = false;


  public boolean inputString() {
    boolean success = false;

    for(int i = 0; i < this.array.length; i++){
      if(this.array[i] == null) {
        this.array[i] = this.newValue;
        return success = true;
      }
    }
    return success = false;
  }

  public void display(Graphics g) {
    g.drawString(Boolean.toString(searchEntry), 200, 200);
    g.drawString(Boolean.toString(foundEntry), 200, 220);

    if(this.searchEntry) {
      if(this.foundEntry) {
        g.drawString("Your searched item has been found", 400, 200);
      } else {
        g.drawString("Your searched item has NOT been found", 400, 200);
      }

      this.foundEntry = false;
      this.searchEntry = false;
    }

    if (this.newEntry) {
      if (this.inputString()) {
        g.drawString("The new entry '" + this.newValue + "' has been added", 300,
                     100);
      }
      else {
        g.drawString("Sorry, the array is already full!", 300, 100);
      }
      this.newValue = "";
      this.newEntry = false;
    }

    for (int i = 0; i < array.length; i++) {
      g.drawString(array[i], this.startX + this.xSpace * i, this.startY + this.ySpace * i);
    }
  }

  public void setNewValue(String newString) {
    this.newValue = newString;
    this.newEntry = true;
  }

  public void seekEntry(String word) {
   this.searchEntry = true;

    for(int i = 0; i < array.length; i++){
      if(array[i].equals(word)) {
        this.foundEntry = true;
      }
    }
  }
}



-----------------------------------------------------------------------------------------------------------
Die eigentliche Klasse mit den Buttons und Textfeldern, ActionListener etc.
-----------------------------------------------------------------------------------------------------------



package playcards;

import java.awt.*;
import java.awt.event.*;
import java.applet.*;

public class Uebung05 extends Applet implements ActionListener {
  private StringClass myString = new StringClass();
  private TextField newEntry, searchEntry;
  private Button enter, search;


  public void init() {
    newEntry = new TextField(20);
    add(newEntry);

    enter = new Button("Enter new value");
    add(enter);
    enter.addActionListener(this);

    searchEntry = new TextField(20);
    add(searchEntry);

    search = new Button("Search for this value");
    add(search);
    search.addActionListener(this);
  }

  public void actionPerformed(ActionEvent event) {
    if(event.getSource() == search) {
      myString.seekEntry(searchEntry.getText());
    }
    if(event.getSource() == enter) {
      if (newEntry.getText() != "") {
        myString.setNewValue(newEntry.getText());
      }
    }

    repaint();
  }

  public void paint(Graphics g){
    myString.display(g);
  }
}
```


----------



## L-ectron-X (31. Mai 2004)

Schon mal in die FAQ geguckt?
Ansonsten kompiliere zunächst mal ohne die Package-Deklarationen und teste im AppletViewer. Wenn später alles läuft, kannst Du sie wieder setzen.


----------



## A3XX (31. Mai 2004)

Hi L-ectron

Ja hab in die FAQ schon geguckt. Bei mir läuft das Applet weder implementiert im Browser noch im Applet Viewer. Und ich verstehe nicht wieso, denn alle meine vorherigen Übungs-Applets (ca. 100) liefen einwandfrei...

Und wenn ich die Package Deklarationen entferne geht das Kompilieren gar nicht mehr.
Und by the way, ich benutze Borland JBuilder


----------



## L-ectron-X (31. Mai 2004)

Hm, ist schon komisch, die meisten Leute, die hier Ärger mit Applets haben, schreiben die mit dem JBuilder. Ich kompilier mir mal den Code, vielleicht finde ich dann was.


----------



## L-ectron-X (31. Mai 2004)

Ich habe das Applet mit gesetzten Package-Deklarationen auch nicht zum Laufen bekommen. ???:L
Dann habe ich mal die Package-Deklaration entfernt und neu kompiliert. Und siehe da, es lief. Auf der Java-Konsole war zwar noch eine NullPointerException, aber das Applet wurde angezeigt.


----------



## A3XX (1. Jun 2004)

Hm ich kann das irgendwie gar nicht kompilieren, JBuilder gibt mir gerade einen Fehler wenn ich das mache ohne die Package Deklaratioonen. 

Aber was kann ich jetzt genau aus deinen Erkentnissen lernen? Was habe ich falsch gemacht?


----------



## L-ectron-X (1. Jun 2004)

Zunächst mal, ich arbeite nicht mit dem JBuilder. Das Applet habe ich mit dem :arrow:Java-Editor ausprobiert.
Normalerweise arbeite ich mit NetBeans, für kleine Programme nehme ich den Java-Editor. Aber das nur am Rande...
Du konntest es nicht mehr kompilieren nach dem Du die Package-Deklaration entfernt hast: das liegt daran, weil JBuilder die interne Verzeichnisstruktur Deines Projekts nicht anpasst. Der Compiler sucht dadurch in einem Verzeichnis, in dem er Deine Klasse nicht finden kann.
Du kannst nun einfach mal das Projekt im JBuilder neu anlegen und den gesamten Code (ohne package-Deklaration) hinein kopieren und kompilieren. Das sollte funktonieren.
Ansonsten stelle doch mal die Frage, die JBuilder betrifft, in die IDE & Tools - Sektion, dort ist sicher schneller jemand zu finden, der sich mit JBuilder besser auskennt als ich.


----------



## A3XX (1. Jun 2004)

Danke für Deine Mühe L-ectron


----------



## Isaac (1. Jun 2004)

Ich habs gerade mal in ein Projekt in Eclipse reingepackt und es "funktioniert". Die Tüddelchen sind dafür weil ich nicht genau weiss was es mchen soll aber es kommt ein Fenster hoch mit "Enter new Value" und "Search forthis value"

Ich habe in meinem Testprojekt ein neues Package angelegt und die beiden Klassen in diesem Package erzeugt und dann einfach "Run as Java Applet" und des wars....


*if (newEntry.getText() != "")* //Böse Falle


----------



## A3XX (1. Jun 2004)

Wieso ist das ne böse Falle? Wie macht man es besser bzw. überhaupt korrekt?


----------

