Applet Applet zeigt nur weiße Fläche

3dprogger

Mitglied
Hallo, ich habe die Aufgabe in der Schule das Spiel Siebzehn und Vier in einem Applet zu visualisieren. Die Klassen und Methoden sind bereits alle vorhanden. Ich habe ein Applet erstellt. Dieses wird soweit auch vom Browser erkannt (aktuelles jre ist installiert), aber es wird einfach nur eine weiße Fläche in der Größe dargestellt, wie in der HTML Datei festgelegt. Es werden keine Labels, keine Buttons und auch keine Textfelder dargestellt. Somit ist meine Arbeit unmöglich. Ich habe ein validate() und die Komponenten hinzugefügt. An was kann es liegen?

Achso, ich bin aus dem C/C++ Bereich und kenne mich wenig bis gar nicht mit Java aus. Also die Arbeit resultiert größtenteils aus Erfahrung, weshalb ich bitte die Lösung einfach zu formulieren.

Hier mein Code

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

  public class siebzehnvier_applet extends Applet implements ActionListener{
   TextField sname1,sname2,sname3=new TextField("",10);
   Button a,b,c;
   Label label1;
   
   int anzahl = 3;
   String [] spielernamen = new String[anzahl];
   
   Runde r;
  public void init(){
   
   setLayout (null);
   setBackground(new java.awt.Color(231,231,231));
   //setBounds(x,y,Breite, Höhe)
   
   label1 = new Label("Spielernamen eingeben: ");
   label1.setBounds(700,50, 20, 10);
   add(label1);
   
   
   setVisible(true);
   sname1.setEditable(true);
   sname1.addActionListener(this);
   sname1.setBounds(50,50, 30, 12);
   add(sname1);
   sname1.setText("Spielername 1");
   
   
   sname2.setEditable(true);
   sname2.addActionListener(this);
   sname2.setBounds(100,50, 30, 12);
   add(sname2);
   sname2.setText("Spielername 2");
  
   sname3.addActionListener(this);
   sname3.setEditable(true);
   sname3.setBounds(150,50, 30, 12);
   add(sname3);
   sname3.setText("Spielername 3");
   
   
   a = new Button("Annehmen");
   a.addActionListener(this);
   add(a);
   b = new Button("Spielen");
   b.addActionListener(this);
   add(b);
   c = new Button("Beenden");
   c.addActionListener(this);
   add(c);
   validate();
   setVisible(true);
  }
  
 


  public void actionPerformed(ActionEvent e){
   Object source= e.getSource();
   if (source==a) {
   spielernamen[0]=sname1.getText();
   spielernamen[1]=sname2.getText();
   spielernamen[2]=sname3.getText();
     
   
   	if ((spielernamen[0]!="Spielername 1")&&(spielernamen[1]!="Spielername 2")&&(spielernamen[2]!="Spielername 3")) {
    r = new Runde(anzahl, spielernamen); 
   }
   
   if (source==b) {   
 	r.Spielstart();	
 	
 	
   }
   
   
   if (source==c) {
    System.exit(0);
   }
   //repaint();  
   }
  }
}

Hier der HTML Code

HTML:
<html>
<head>
<title>Siebzehn und Vier Simulation</title>
</head>
<body text="#000000" bgcolor="#009900" link="#FF0000" alink="#FF0000" vlink="#800000">
<div align="center">
<applet
   code=siebzehnvier_applet.class
   width=800
   height=600>
</applet>
</div>
</body>
</html>
 
G

Gast2

Gast
1. Klassen schreib man groß und in CamelCase
2. Benutze Swing kein AWT.
3. wahrscheinlich stimmt dein pfad zu deiner klass datei nicht.
 

3dprogger

Mitglied
1. Danke erstmal für deinen Tipp. Ich kenne das zwar schon, aber habe es in Java aus irgendwie nicht miteingbracht:lol:

2. Ich habe damals dazu ein wenig gelesen, aber da im Unterricht nacher im Abitur die Standardsache gefordert wird und ich nicht wirklich viel mit Java zu tun haben möchte, wäre es für mich unnötig an dieser Stelle davon Gebrauch zu nehmen.

3. Die Html Datei ist im selben Ordner, wie die .class Datei.

Vlt. weitere Vorschläge?
 
G

Gast2

Gast
ja versuch Swing ;)...
Musst ja überall nur ein J davor schreiben DAS IST DER STANDARD
 
G

Gast2

Gast
Also wo startest du denn deine html Datei???
Im src Verzeichnis oder im bin Verzeichnis???
Du musst die aus dem bin Verzeichniss nehmen weil das sind deine CLass Dateien kompiliert.
Außerdem sagt dein Browser doch eine Fehlermeldung da steht alles drin.
 

3dprogger

Mitglied
Erstmal sehe ich keine Fehlermeldung des Browsers

Das ist meine Ordnerstruktur

C:\Programme\Java\jdk1.6.0_11

Ich arbeite auf:

C:\Dokumente und Einstellungen\Admin\Desktop\Joe\siebzehnvier_applet

darin befindet sich auch siebzehnvier_applet.java Datei

Joe:
Pfad des Compilers: C:\Programme\Java\jdk1.6.0_11\bin\javac.exe
des Interpreters: C:\Programme\Java\jdk1.6.0_11\bin\java.exe

Zielpfad bzw. Temp: C:\Dokumente und Einstellungen\Admin\Desktop\Joe

Die .class Datei wird also immer in diesem Verzeichnis erstellt. In diesem Verzeichnis liegt auch die HTML Datei.
 

L-ectron-X

Gesperrter Benutzer
Auch wenn er das einfach nach Swing umbiegt, wird es doch noch die gleichen Probleme geben.
Wenn man den Code durchsieht, wird man erkennen, dass mehrmals auf nicht initialisierte Instanzen zugegriffen wird, was NullPointerExceptions nach sich zieht, die man auch in der Java-Console bewundern dürfte.

Außerdem verwendet der TO das "NullLayout". Einige GUI-Komponenten (die Buttons) sind schon mal bezüglich ihrer Dimensionen gar nicht festgelegt worden und daher unsichtbar.
 
G

Gast2

Gast
Wie gesagt sollte er sich die Fehlermeldungen anschauen und dann kommt man auf das Problem selber.
 

L-ectron-X

Gesperrter Benutzer
Nur hilft das einem Einsteiger vielleicht nicht...

Hier mal der für's erste berichtigte und kommentierte Quellcode:
Java:
import java.awt.*;
import java.awt.event.*;
import java.applet.*;
import java.net.*;

  public class siebzehnvier_applet extends Applet implements ActionListener{
   TextField sname1,sname2,sname3 = new TextField("", 10);
   Button a, b, c;
   Label label1;

   int anzahl = 3;
   String [] spielernamen = new String[anzahl];

   Runde r;
   
  public void init(){

   setLayout (null);
   setBackground(new java.awt.Color(231, 231, 231));
   //setBounds(x,y,Breite, Höhe)

   label1 = new Label("Spielernamen eingeben: ");
   label1.setBounds(10, 10, 230, 20);
   add(label1);

   sname1 = new TextField();
   sname1.setEditable(true);
   sname1.addActionListener(this);
   sname1.setBounds(10, 40, 230, 20);
   add(sname1);
   sname1.setText("Spielername 1");

   sname2 = new TextField();
   sname2.setEditable(true);
   sname2.addActionListener(this);
   sname2.setBounds(10, 70, 230, 20);
   add(sname2);
   sname2.setText("Spielername 2");
   sname3 = new TextField();
   sname3.addActionListener(this);
   sname3.setEditable(true);
   sname3.setBounds(10, 100, 230, 20);
   add(sname3);
   sname3.setText("Spielername 3");

   a = new Button("Annehmen");
   a.addActionListener(this);
   a.setBounds(10, 180, 70, 23);
   add(a);
   
   b = new Button("Spielen");
   b.addActionListener(this);
   b.setBounds(90, 180, 70, 23);
   add(b);
   
   c = new Button("Beenden");
   c.setBounds(170, 180, 70, 23);
   c.addActionListener(this);
   add(c);

  }


  public void actionPerformed(ActionEvent e){
    Object source= e.getSource();
    if (source==a) {
      spielernamen[0]=sname1.getText();
      spielernamen[1]=sname2.getText();
      spielernamen[2]=sname3.getText();

      if ((spielernamen[0]!="Spielername 1")&&(spielernamen[1]!="Spielername 2")&&(spielernamen[2]!="Spielername 3")) {
        /* Strings (Objekte) werden mit equals() verglichen!
         * Beispiel:
         * if (!spielernamen[0].equals("Spielername 1") && !spielernamen[1].equals("Spielername 2") && !spielernamen[2].equals("Spielername 3"))
         */

        r = new Runde(anzahl, spielernamen);
      }

      if (source==b) {
        r.Spielstart();
      }

      if (source==c) {
        //System.exit(0); //Dieser Aufruf wird eine AccessControlException werfen!
                          //Unsignierte Applets dürfen die VM nicht beenden.
                          
        //Wenn schon, dann etwas wie:
        try {
          getAppletContext().showDocument(new URL("http://www.java-forum.org"));
        }
        catch(MalformedURLException murle) {
          System.err.println(e.toString());
        }
      }
      //repaint();
    }
  }
}

@3dprogger: Ich habe mal das "NullLayout" noch drin gelassen. Für den Anfänger mag das zwar noch die schnellsten Erfolge erzielen, aber im produktiven Einsatz spielt AWT und auch das "NullLayout" keine Rolle. Daher solltest du dir Wissen um die LayoutManager aneignen.

Wenn du noch ein Swing-Beispiel haben möchtest, musst du dich noch mal melden.
 

Anhänge

  • AppletViewer.png
    AppletViewer.png
    10,1 KB · Aufrufe: 18

3dprogger

Mitglied
@SirWayne Danke dir auch, aber im ersten Post habe ich geschrieben, dass ich mich mit Java so gut wie kaum auskenne und alles zusammengewürfelt habe aus C/C++ Erfahrung. Ich habe leider nicht die nötige Zeit um so lange an einem kleinen Problem zu feilen. Außerdem versuche ich die Aufgaben zu machen und werde an einer völlig unbekannten Stelle ausgetrickst.

Danke L-ectron-X für deine Mühe

Habe dein Beispiel übernommen und noch bei Joe einen Appletviewer ausprobiert. Da kommt dann auch eine Fehlermeldung.
 

Anhänge

  • fehlerjava490c7.jpg
    fehlerjava490c7.jpg
    97,6 KB · Aufrufe: 14
G

Gast2

Gast
@SirWayne Danke dir auch, aber im ersten Post habe ich geschrieben, dass ich mich mit Java so gut wie kaum auskenne und alles zusammengewürfelt habe aus C/C++ Erfahrung. Ich habe leider nicht die nötige Zeit um so lange an einem kleinen Problem zu feilen. Außerdem versuche ich die Aufgaben zu machen und werde an einer völlig unbekannten Stelle ausgetrickst.

Wenn du dich nicht so gut auskennst solltest du wieder jeder mit den Grundlagen anfangen und Tutorials durcharbeiten, kein Mensch hat Zeit aber ohne Eigeninitative kommst du nicht weit, außerdem hast du als Schüler davon mehr als genug ;)...
Glaubst ja wohl nicht wiklich dass du einfach ein fehlerhaftest Programm hier reinstellst und jemand erledigt es dann für dich...
Du hast wie der Fehler sagt NPE's du musst deine Felder richtig instanzieren. Wie bei C auch...
Wo wirst du den ausgetrickst?Nirgends du musst es nur richtig machen!
 

3dprogger

Mitglied
Ich habe Eigeninitiative, aber nicht im Java Bereich. Diese Sprache bringt mir weder später im Studium noch was, noch wird sie mir im Abitur helfen. Ich muss im Abi nur wissen wie Klassen und Objekte mit den Methoden vereinbare und in der Konsole ausgebe. Da kann ich mir im Ernst nicht die Zeit nehmen etwas zu lernen was ich gar nicht will und brauche. Leider ist Java fehleranfälliger wie ich gemerkt habe. Ich hatte auch mal daran gedacht es zu lernen, aber es kostet Zeit die nicht nicht habe. Ich muss mich zwar hier nicht rechtfertigen, aber das wollte ich hier an dieser Stelle loswerden.

Edit: Seit wann instanziert man bei C, vlt. meinst du Objective C(kenne ich nicht, nur gehört von IPhone Programmierern)
Ich kann auch aus den Fehlermeldungen nichts entnehmen bzw. ich weiß nicht wie.


Danke an L-ectron-X nochmal. Es hat sich alles geklärt. Der Aufruf der class mit Joe rief die alte Klasse auf, aber nicht die neue von dir. Jetzt werden auch keine Fehlermeldungen ausgegeben. Das Applet wird auch so angezeigt wie ich es mir vorgestellt habe. Vielen Dank nochmal. Ich werde mich vlt. bald wieder melden:lol:
 
Zuletzt bearbeitet:
G

Gast2

Gast
Ich habe Eigeninitiative, aber nicht im Java Bereich. Diese Sprache bringt mir weder später im Studium noch was, noch wird sie mir im Abitur helfen. Ich muss im Abi nur wissen wie Klassen und Objekte mit den Methoden vereinbare und in der Konsole ausgebe.

Dachte Sie bringt dir nichts? Auf einmal doch??

Da kann ich mir im Ernst nicht die Zeit nehmen etwas zu lernen was ich gar nicht will und brauche.

Darum sollen andere das für dich machen??????:noe:

Leider ist Java fehleranfälliger wie ich gemerkt habe.
Die Erkenntnis hast du aus deiner reichhaltigen Erfahrung gewonnen?
 
G

Gastredner

Gast
Ich habe Eigeninitiative, aber nicht im Java Bereich. Diese Sprache bringt mir weder später im Studium noch was, noch wird sie mir im Abitur helfen.
Informatikstudium? Wenn ja: das ist Quasi-Standard an Unis, es würde dir von daher sicherlich etwas bringen.

Edit: Seit wann instanziert man bei C
Stell dir deinen vorherigen Fehler wie eine fehlende oder auf NULL zeigende Initialisierung eines Pointers vor. Das war es wohl, was SirWayne damit ausdrücekn wollte.
 

3dprogger

Mitglied
Dachte Sie bringt dir nichts? Auf einmal doch??
Das weiß ich bereits und habe in Vorabiklausur 15 Punkte :D

Darum sollen andere das für dich machen?
Ich möchte meine Aufgaben beenden, aber die Anzeige ließ meine Weiterarbeit nicht zu. Ich meine ich kaufe mir doch kein neues Auto (Programmiersprache) wenn mein Rad (Programmfehler) kaputt ist:shock:

Die Erkenntnis hast du aus deiner reichhaltigen Erfahrung gewonnen?
Obwohl einiges nicht instanziert war, hat der Compiler fröhlich weiter ausgegeben "All right".

Informatikstudium?

Nein, ich werde Studium zum Maschinenbauingeneur beginnen. Da brauche ich zur Hardwarenahen Programmierung ausschließlich C.

Stell dir deinen vorherigen Fehler wie eine fehlende oder auf NULL zeigende Initialisierung eines Pointers vor. Das war es wohl, was SirWayne damit ausdrücekn wollte.

Na geht doch, jetzt weiß ich was gemeint ist!:applaus:

Zum Glück läuft es jetzt und ich möchte mich nochmal zum Schluß bedanken:toll:
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
F Applet zeigt Bilder nicht an AWT, Swing, JavaFX & SWT 5
G Grafikformat für AWT-Applet? AWT, Swing, JavaFX & SWT 0
I Applet BlueJ Applet - Bild mit if-Schleife zeichnen lassen AWT, Swing, JavaFX & SWT 16
T Applet Applet in JFrame einbinden AWT, Swing, JavaFX & SWT 8
C Applet Applet funktioniert in Eclipse aber nicht in Browser AWT, Swing, JavaFX & SWT 1
S Sandboxed Applet weiterhin moeglich..? AWT, Swing, JavaFX & SWT 5
S Oracle's neue Sicherheitseinstellungen zerstoeren mein Applet. Was tun? AWT, Swing, JavaFX & SWT 3
G Applet Applet Komponenten flackern AWT, Swing, JavaFX & SWT 10
U CardLayout im Applet AWT, Swing, JavaFX & SWT 4
J Applet Applet Vererbung/Überladen AWT, Swing, JavaFX & SWT 5
G JavaFX mit ANT deployen als Applet AWT, Swing, JavaFX & SWT 3
S Applet Application 2 applet AWT, Swing, JavaFX & SWT 3
T Applet JTattoo Look and Feel AWT, Swing, JavaFX & SWT 5
T Signiertes Applet Urheber angeben AWT, Swing, JavaFX & SWT 5
S Applet Repaint AWT, Swing, JavaFX & SWT 3
B Java-Applet Parameter übergabe? AWT, Swing, JavaFX & SWT 2
M Applet mit Bildern AWT, Swing, JavaFX & SWT 2
T Applet in JSP einbinden AWT, Swing, JavaFX & SWT 4
R MouseEvent.getX() liefert in Applet Screen-Koordinate AWT, Swing, JavaFX & SWT 2
K Applet Wieso kann ich keine Array im Applet initialisieren AWT, Swing, JavaFX & SWT 13
A Applet Applet vom Web-Server aus aufrufen AWT, Swing, JavaFX & SWT 11
A Applet Applet startet nicht AWT, Swing, JavaFX & SWT 2
P Tatsächliche Größe für Applet AWT, Swing, JavaFX & SWT 3
B Applet Aus Applet signiertes jar mit externen libs erstellen AWT, Swing, JavaFX & SWT 9
S JDialog über Applet AWT, Swing, JavaFX & SWT 3
M Warum funktioniert mein Applet nicht? AWT, Swing, JavaFX & SWT 6
D Applet hintergrund wird nicht weiß AWT, Swing, JavaFX & SWT 2
R Applet JavaScript Methodenaufruf AWT, Swing, JavaFX & SWT 2
A Applet Animiertes gif in awt applet anzeigen AWT, Swing, JavaFX & SWT 11
X Applet Java Applet Datei Ausführung AWT, Swing, JavaFX & SWT 9
A Applet .gif in applet Image nicht animiert angezeigt AWT, Swing, JavaFX & SWT 4
A Applet Applet aus Code neu starten AWT, Swing, JavaFX & SWT 2
K Applet erkennt keine Frameverkleinerung AWT, Swing, JavaFX & SWT 5
S Applet funktioniert nach Browserreload nicht richtig AWT, Swing, JavaFX & SWT 2
T Applet Applet vs. WebStart AWT, Swing, JavaFX & SWT 4
S Applet starten AWT, Swing, JavaFX & SWT 4
K JTable im Browser nicht zu sehen - Applet AWT, Swing, JavaFX & SWT 6
B Applet Button oder Toolbar in einem Applet AWT, Swing, JavaFX & SWT 5
V Applet mit Bildbearbeitung AWT, Swing, JavaFX & SWT 3
V Applet Applet starten schlägt fehl AWT, Swing, JavaFX & SWT 2
W Button in Applet AWT, Swing, JavaFX & SWT 9
kniffel GUI-Applet JTable füllt Hintergrund völlig aus AWT, Swing, JavaFX & SWT 4
J Applet Java-Applet friert mit Firefox ein AWT, Swing, JavaFX & SWT 8
J Applet Tetris flackert AWT, Swing, JavaFX & SWT 9
F Applet Applet starten...(+Timer?) AWT, Swing, JavaFX & SWT 12
S [JAVA] JFrame in Applet/JApplet AWT, Swing, JavaFX & SWT 14
D Applet Applet das auf fremden Libraries basiert einbinden? AWT, Swing, JavaFX & SWT 20
M Applet wird nicht angezeigt AWT, Swing, JavaFX & SWT 2
M JMenuBar im Applet und paint AWT, Swing, JavaFX & SWT 9
E Applet Neuen Tab aus Applet öffnen AWT, Swing, JavaFX & SWT 3
G Applet, Link ermitteln, dem der Benutzer gefolgt ist AWT, Swing, JavaFX & SWT 2
K Email versenden ueber Applet AWT, Swing, JavaFX & SWT 11
S Applet in JFrame einbinden AWT, Swing, JavaFX & SWT 6
S Button aktivieren (Applet) AWT, Swing, JavaFX & SWT 2
B 2 Probleme (JFrame & Applet) AWT, Swing, JavaFX & SWT 7
A Programmieren einer Agenda mit einer Liste (als Applet und .txt zum Speichern) AWT, Swing, JavaFX & SWT 7
H applet Methode aus abstrakter Klasse aufrufen AWT, Swing, JavaFX & SWT 12
H Applet - Hilfedateien im Browser öffnen / eine Webseite laden AWT, Swing, JavaFX & SWT 6
O JPanel aus Applet starten AWT, Swing, JavaFX & SWT 3
O Applet-Steuerung mit Tastaturbefehlen AWT, Swing, JavaFX & SWT 3
F 4-Gewinnt als Applet AWT, Swing, JavaFX & SWT 24
F Applet vs Stand-Alone-Client AWT, Swing, JavaFX & SWT 3
B AWT Bild als Hintergrund im Applet AWT, Swing, JavaFX & SWT 2
D Probleme mit MouseWheelListener und JLayeredPane in Applet AWT, Swing, JavaFX & SWT 2
G Applet und Swing Anwendung AWT, Swing, JavaFX & SWT 2
S Applet - Aerger mit dem Hintergrundbild - JLabel und JTextfield AWT, Swing, JavaFX & SWT 7
R for-Schleife in Applet ausgeben AWT, Swing, JavaFX & SWT 3
S Bild wird auf Canvas in Applet nicht gezeichnet AWT, Swing, JavaFX & SWT 4
W Swing heapsort + Applet AWT, Swing, JavaFX & SWT 4
P Diagramm in einem Applet zeichnen AWT, Swing, JavaFX & SWT 4
M Java Applet JTable/JList AWT, Swing, JavaFX & SWT 6
L Einfache Layout Frage für Applet -> Was mache ich bloss falsch? AWT, Swing, JavaFX & SWT 2
K Alternative zu Applet mit HTML-Einbindung AWT, Swing, JavaFX & SWT 11
J Java-Applet beenden AWT, Swing, JavaFX & SWT 3
R Applet aus JFrame starten AWT, Swing, JavaFX & SWT 2
T Konfiguration speichern in Applet AWT, Swing, JavaFX & SWT 2
P Swing Roter Faden beim Applet GUI Programmieren AWT, Swing, JavaFX & SWT 2
T HTML Seite neu laden mittels Applet AWT, Swing, JavaFX & SWT 2
T Icon von Frame ändern - Applet AWT, Swing, JavaFX & SWT 2
T Java Applet beenden AWT, Swing, JavaFX & SWT 2
M Swing Butten & TextFields aus Applet im JFrame nicht sichtbar AWT, Swing, JavaFX & SWT 2
I Swing .Jar Datei - funktioniert - nun als Applet AWT, Swing, JavaFX & SWT 13
S Applet mit Graphics dynamisch vergrößern AWT, Swing, JavaFX & SWT 3
M AWT text im applet formatieren AWT, Swing, JavaFX & SWT 5
L Applet Frage AWT, Swing, JavaFX & SWT 25
1 Verständnisprobleme bei Java Applet AWT, Swing, JavaFX & SWT 13
B Unterschied JFrame/Applet AWT, Swing, JavaFX & SWT 12
T [Applet] startet in Eclipse aber nicht im Browser AWT, Swing, JavaFX & SWT 2
G JSlider in Applet AWT, Swing, JavaFX & SWT 4
P Swing Applet AWT, Swing, JavaFX & SWT 2
R problem mit bildanzeige in applet und main AWT, Swing, JavaFX & SWT 2
A Applet kommt offline nicht mit FileReader zurecht AWT, Swing, JavaFX & SWT 3
F Applet und Popup AWT, Swing, JavaFX & SWT 4
G Wie startet man ein Applet ? AWT, Swing, JavaFX & SWT 4
R Ein Applet von einem Applet öffnen lassen AWT, Swing, JavaFX & SWT 2
Z Applet ausblenden AWT, Swing, JavaFX & SWT 5
G JList wird in einem Applet nur teilweise aktualisiert AWT, Swing, JavaFX & SWT 12
P Applet darstellung von Textfeldern Problem AWT, Swing, JavaFX & SWT 3
I Applet --> neues Fenster öffnen AWT, Swing, JavaFX & SWT 11
I Applet mit Panels (so richtig, gehts besser?) AWT, Swing, JavaFX & SWT 3

Ähnliche Java Themen

Neue Themen


Oben