# Warum wird das Applet nicht angezeigt?



## jenny (5. Dez 2005)

guten Abend zusammen, 

ich habe folgende kleine applet klasse, die nat. außer etwas anzuzeigen noch  nix macht, da ich noch anfängerin bin.


```
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;


public class Test1 extends JApplet 
{	
	
	private JButton b1;
	private JButton b2;
	private JButton b3;
	private JLabel label;
	private JPanel panel = new JPanel();
	private Container c;
	
	public void init()
	{			
		b1 = new JButton("Show");
		b2= new JButton("Next");
		b3 = new JButton("Delete");
		
		panel.setBackground(Color.WHITE);		
		
		panel.add(b1);
		panel.add(b2);
		panel.add(b3);		
		
		label = new JLabel("Junk Source View", JLabel.RIGHT);		
		
		c = getContentPane();
		c.setBackground(Color.WHITE);
		c.setLayout(new BorderLayout());
		c.add(panel, BorderLayout.NORTH);
		ImagePanel image = new ImagePanel();
		image.setBorder(BorderFactory.createTitledBorder("Junk Sources"));
		c.add(image, BorderLayout.CENTER);
		c.add(label, BorderLayout.SOUTH);	
		
	}	
	
	class ImagePanel extends JComponent
	{
        protected void paintComponent(Graphics g)
        {
             Image img;
             img = getToolkit().getImage("weltkarte.jpg");                
             g.drawImage(img, 100, 50, this);
        }
	}
}
```

Ich habe nun einen Ordner "Test", indem sich folgende Dateien befinden:

- Test1.class
- Test.htm

Der zugehörige Html Code zu Test sieht so aus:


```
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>Test</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>

<body>
<div align="center"><applet code="Test1.class" width="600" height="400">
</applet>
</div>
</body>
</html>
```

- Warum zeigt der Mozilla in der statusleiste "applet test1 started" und zeigt dabei nichts an. also nicht einmal die   graue fläche und ein rotes x in der linken oberen ecke.

- warum zeigt mir der IE in der statusleiste "class Test1 not found" an ?

Ich würde mich freuen, wenn jemand eine Lösung parat hätte. Ich probiere und suche und suche und komme einfach nicht auf den fehler .


----------



## Sky (5. Dez 2005)

hi jenny, wird es denn im appletviewer korrekt angezeigt ?


----------



## L-ectron-X (5. Dez 2005)

jenny hat gesagt.:
			
		

> - warum zeigt mir der IE in der statusleiste "class Test1 not found" an ?


Welche JVM hast du im IE eingestellt? Mit welchem JDK/SDK programmierst du das Applet?
Dazu auch mal folgender FAQ-Beitrag: http://www.java-forum.org/de/viewtopic.php?t=4936

Ach ja: Bilder/Grafiken werden in Applets mit der Methode Applet#getImage(URL url) bereits in der init()-Methode geladen, also nicht mit der von Toolkit. API-Link: http://java.sun.com/j2se/1.5.0/docs/api/java/applet/Applet.html#getImage(java.net.URL)


----------



## jenny (5. Dez 2005)

hallo
danke für die schnelle hilfe. 

ich benutze das neueste eclipse und habe java 1.4 installiert.
beide browser zeigen applets aus dem internet an. 

wo stell ich im ie denn ein, welche runtime enviroment benutzt werden soll?

gibt es in eclipse eigentlich eine funktion die direkt ein html dokument zu dem erstellten applet erzeugt?

ok ich probier auch mal die faq zu lesen.


----------



## L-ectron-X (5. Dez 2005)

jenny hat gesagt.:
			
		

> wo stell ich im ie denn ein, welche runtime enviroment benutzt werden soll?


Im Dateimenü des IE auf _Extras -> Internetoptionen -> _dann den Reiter _Erweitert_.
Herunterscrollen bis _Java (Sun)_ und dort den Haken setzen.
Dann alle Haken unter _Microsoft VM_ entfernen.


----------



## jenny (5. Dez 2005)

aha ok, 

vielen dank, jetzt klappt es. allerdings wird das applet immer noch nicht angezeigt. kann es sein, dass meinem java code was nicht stimmt? 
angenommen ich will ein applet mit einem bild (borderlayout.center) und einem beliebigen swing element (borderlayout.north).
gibt es da vlleiht einen anderen weg, statt dieses verfahrens mit der zusätzlichen klasse Imageviewer ?

welches wäre denn der einfachste weg, bzw warum wird der button erst sichtbar, wenn ich da hinklicke, wo ich ihn vermute ?


```
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;



public class Test2 extends JApplet 
{	
	
	private JButton b1;
	private JButton b2;
	private JButton b3;
	private JLabel label;
	private JPanel panel = new JPanel();
	private Container c;
	
	public void init()
	{			
		b1 = new JButton("Button");
		
		
		panel.setBackground(Color.WHITE);			
		panel.add(b1);		
		
		c = getContentPane();		
		c.setBackground(Color.WHITE);		
		c.setLayout(new BorderLayout());
		c.add(panel, BorderLayout.NORTH);		
		
	}		
	
//hm nur das bild ist sichtbar, der button hingegen erst, wenn ich das fenster "resize" ??
    public void paint(Graphics g)
    {
        Image img;
        img = getToolkit().getImage("weltkarte.jpg");                
        g.drawImage(img, 100, 50, this);
    }
	
}
```

sorry, dass ich so viele fragen stellen muss, aber ich wüsste sonst niemanden der sich damit auskennt.

danke

[/code]


----------



## L-ectron-X (6. Dez 2005)

Zu Demonstartionszwecken hier mal ein einfaches JApplet, mit Bild im Center-Bereich, einem Paar Buttons im North-Bereich und einem Label im South-Bereich.


```
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;

public class TestApplet extends JApplet {
   private JLabel label, picture;
   private JButton next, previous;
   private JPanel buttonPanel;
   private Container c;
   private Image img;

   public void init() {
      c = this.getContentPane();
      c.setLayout(new BorderLayout());

      //das Bild muss sich im gleichen Verzeichnis befinden wie die .class-Datei
      img = getImage(getCodeBase(), "bild.jpg");

      previous = new JButton("Previous");
      next = new JButton("Next");
      buttonPanel = new JPanel();

      buttonPanel.setBackground(Color.LIGHT_GRAY);
      buttonPanel.add(previous);
      buttonPanel.add(next);
      c.add(buttonPanel, BorderLayout.NORTH);

      picture = new JLabel(new ImageIcon(img));
      c.add(picture, BorderLayout.CENTER);

      label = new JLabel("JLabel");
      label.setHorizontalAlignment(SwingConstants.CENTER);
      c.add(label, BorderLayout.SOUTH);
   }
}
```
Eine paint()-Methode wird in einem JApplet nur zum Zeichnen benötigt.


----------



## jenny (6. Dez 2005)

prima, vielen danke


----------

