kostenloser Webspace werbefrei: lima-city


Problem mit Entwicklung eines Applets

lima-cityForumProgrammiersprachenJava

  1. Autor dieses Themas

    chaosboy79

    chaosboy79 hat kostenlosen Webspace.

    Hi ihr.

    Ich habe vorhin das erste mal mit einem Applet gearbeitet und bekam direkt zwei Probleme.

    Erst der Scripttext (poste ich wegen der blöden HTML-Formatierung lieber hier nicht):
    http://www.nightangelz.de/temp/java.txt

    Im Appletviewer von Eclipse baut er es fehlerfrei auf. Allerdings bekomme ich in der Zeile....

    public class na_chat extends Applet

    folgenden Fehler:
    The serializable class na_chat does not declare a static final serialVersionUID field of type long

    Was kann ich dabei am besten machen? Er sagt auch beim Umwandeln zur .jar, das es einen Fehler gibt:
    Exported with compile warnings /Nightangelz-Chat/na_chat.java

    Beim HTML-Test versuche ich es dann mit folgendem HTML-Code:
    <applet code="na_chat.class" archive="chat.jar" codebase="http://127.0.0.1/chat/" WIDTH="800" HEIGHT="600"></applet>

    Allerdings kommt da der Fehler:
    Applet na_chat notinited.

    Die Konsole schmeißt mit folgendes raus...
    Laden: Klasse na_chat.class nicht gefunden
    java.lang.ClassNotFoundException: java.io.IOException: open HTTP connection failed.
    at sun.applet.AppletClassLoader.getBytes(Unknown Source)
    at sun.applet.AppletClassLoader.access$100(Unknown Source)
    at sun.applet.AppletClassLoader$1.run(Unknown Source)
    at java.security.AccessController.doPrivileged(Native Method)
    at sun.applet.AppletClassLoader.findClass(Unknown Source)
    at sun.plugin.security.PluginClassLoader.findClass(Unknown Source)
    at java.lang.ClassLoader.loadClass(Unknown Source)
    at sun.applet.AppletClassLoader.loadClass(Unknown Source)
    at java.lang.ClassLoader.loadClass(Unknown Source)
    at sun.applet.AppletClassLoader.loadCode(Unknown Source)
    at sun.applet.AppletPanel.createApplet(Unknown Source)
    at sun.plugin.AppletViewer.createApplet(Unknown Source)
    at sun.applet.AppletPanel.runLoader(Unknown Source)
    at sun.applet.AppletPanel.run(Unknown Source)
    at java.lang.Thread.run(Unknown Source)

    Allerdings ist die Verknüpfung zur Quelle (na_chat.class in der Datei http://127.0.0.1/chat/chat.jar) absolut richtig, oder mache ich da etwas ganz falsch???
  2. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

  3. p**i

    Moin,

    Erstens: Lasse AWT wenn es geht aussen vor, weil es veraltet ist. Nutze Swing.
    Zweitens: Klassennamen werden immer mit grossem Anfangsbuchstaben geschrieben
    -> public class No_Chat

    Drittens: Dir fehlt ein Konstruktor -> public No_Chat(){ ... }
    Viertens: Die UID kannst Du in eclipse automatisch erstellen lassen, klicke dafür auf die Glühlampe mit dem Fragezeichen linke neben "public class No_Chat extends Applet{"
    Dort wählst Du entweder den ersten oder zweiten Menüpunkt aus, da kommt dann soetwas raus
    -> private static final long serialVersionUID = 1L;

    Fünftens: Nachdem Du das alles getan hast, sollte sich das ganze in ein JAR packen lassen, ABER es ist unnütz, eine einzelne Klasse gleich in ein JAR zu stecken.
    Das bietet sich logischerweise erst bei mehreren Klassen an.

    Sechstens: Swing, Swing und nochmals Swing nutzen :biggrin:

    Siebtens: Alle Variablen innerhalb einer Klasse werden mit kleinen Anfangsbuchstaben begonnen, es sei denn es sind Konstanten
    -> Label infoText

    Gruss,
    Puni

    Beitrag geändert: 31.10.2006 17:50:42 von puni
  4. Autor dieses Themas

    chaosboy79

    chaosboy79 hat kostenlosen Webspace.

    Ah super, er hat mir jetzt das angehangen:
    private static final long serialVersionUID = 1L;

    Das Browserproblem bei der Darstellung hat sich inzwischen auch erledigt (der sch..ss Browser hat nen gecachtes Aplett reingeladen, trotz das ich ihm das Cachen von sämtlichen Daten verboten habe). Und da das Aplett vorher nen anderen zugriffsnamen (code="test.class") hatte, kanns ja auch nicht gehen. Läuft alles super, nur eine Frage hab ich noch (möcht aber keinen Extra-Thread erstellen wenns ok ist)...
    Ich hab jetzt einen Button erstellt, der ein Fenster öffnen soll.
    Beim Klick wird die Funtkion OpenMainwindow() aufgerufen. In dieser Funktion soll das Applet ein Fenster öffnen. Ich schätze mal nicht, das der Container-Befehl nicht richtig ist. Ist das vielleicht dann ein Dialog??? Oder besser, welche Befehle brauch ich dafür?
  5. p**i

    Moin,

    die Frage ist was für ein Fenster es sein soll.
    Willst Du Dir das selbst zusammenschustern oder soll es sowas wie ein 'Meldefenster' sein (z.B. Error-Dialog wie in Windows)?
    Wenn letzteres der Fall ist, dafür gibt es bereits implementierte Dialoge in Java,
    jedoch nur unter Swing -> und man mischt kein AWT & Swing, das gibt eine unheilige Allianz.

    Gruss,
    Puni
  6. Autor dieses Themas

    chaosboy79

    chaosboy79 hat kostenlosen Webspace.

    Also ums genau zu sagen:
    Ich habe im Aplettbereich (also im Browser) zwei Elemente... eine Dropdown (Choice... so nennt sich es zumindest im awt), die alle Channels eines Chats aufgelistet hat, sowie einen Button, der sowas wie ein Login-Button letztendlich sein soll. Durch den Klick auf den Login-Button werden Nick, Session-ID und Channel-ID an den Server gesendet (Nick und Session-ID sind im HTML <param> und werden direkt am Anfang mit getParameter ausgelesen). Wenn alle übermittelte Daten in Ordnung sind, soll er dann eben ein Fenster (Chatbereich) aufmachen, in dem dann der Chat stattfindet. Bei einem Fehler (zum Beispiel bei manipuliertem <param> oder wenn der Channel voll ist) würde ein Dialog ausreichen.
    Weiteres Technisches: Im Chatfenster hat man die Möglichkeit, das wenn man einen Doppelklick auf einen User macht, sich ein weiteres Fenster für 1:1 Chats öffnet. Aber das ganze ist noch Zukunftsperspektive. Mir gehts generell erstmal drum, das ich ein paar Grundlegende Funktionen in Java lerne (Elemente wie Inputboxen, Labels, Buttons usw.) bevor es weitergeht mit Sockets usw.
    Da Swing besser sein soll, habe ich bereits im Internet sehr oft gelesen, doch wenn es um Tutorials geht, greifen anscheinend viele doch noch aufs awt zurück. Den Script, den ich oben verwendet habe, stammte aus einer Vorlage. Ich werde aber gleich schauen, das ich mich durch die Packages von Swing durchklopp.
  7. p**i

    Moin,

    okay, bevor Du Dich jetzt in AWT verfranzt, hier das ausführlichste Swing-Tutorial überhaupt, aber in Englisch - da kommst Du nicht drum herum:

    http://java.sun.com/docs/books/tutorial/uiswing/TOC.html

    Für Error-Messages schau Dir mal die Klasse javax.swing.JOptionPane in der API an.
    Du musst mit der Java-API arbeiten, weil dies Deine wichtigste Quelle im Laufe der Programmierung sein wird.
    Ein Beispiel für einen Error-Dialog ohne Error-Icon:

    JOptionPane.showMessageDialog(null, "Es ist ein Fehler aufgetreten!");

    Damit wird automatisch ein Dialog mit dem Text als Inhalt aufgerufen.

    Gruss,
    Puni

    Beitrag geändert: 31.10.2006 18:48:47 von puni
  8. Autor dieses Themas

    chaosboy79

    chaosboy79 hat kostenlosen Webspace.

    Ah, genau sowas hab ich gesucht.
    Englisch ist eh kein Problem für mich. Hab auch innerhalb weniger Minuten das bisschen, was ich da hab auf Samba (äh Jazz.. ups... Swing) übersetzt.
    Ich werd mich mal da heute abend noch durchbeissen und morgen hat ich dann Kopfweh und ein Chat, der 5 Millionen Member hat (ne Scherz :lol:). Scheint zwar etwas kompliziert zu sein, aber das sagte ich auch, als ich PHP und C anfing.
  9. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

Dir gefällt dieses Thema?

Über lima-city

Login zum Webhosting ohne Werbung!