Du verwendest einen veralteten Browser. Es ist möglich, dass diese oder andere Websites nicht korrekt angezeigt werden. Du solltest ein Upgrade durchführen oder ein alternativer Browser verwenden.
ich habe folgende kleine applet klasse, die nat. außer etwas anzuzeigen noch nix macht, da ich noch anfängerin bin.
Code:
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:
Code:
<!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 .
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)
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.
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 ?
Code:
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.
Zu Demonstartionszwecken hier mal ein einfaches JApplet, mit Bild im Center-Bereich, einem Paar Buttons im North-Bereich und einem Label im South-Bereich.
Code:
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.