I'm trying to make a PhotoAlbum using JApplets.I write a Java code for it and then compile to make a .class file and then made a html file in the same directory which have .class file.But while running it on Web -Browser it doesn't load the applet and shows that Applet doesn't loaded.Help me to figure it out.

Here's my Java code------

import java.awt.*;
import java.applet.*;
import java.applet.Applet;
import java.awt.event.*;
import java.awt.image.*;
public class PhotoAlbum extends Applet implements ActionListener
{

    Button
            previous = new Button("Previous"),
            first = new Button("First"),
            last = new Button("Last"),
            next = new Button("Next");
    Canvas
            imageCanvas = new Canvas();

    final int total = 6; 
    int i = 0;
        Image Pictures[] = new Image[total];   //Picture Array to store pictures.....
    @Override
    public void init() 
        {
            makeGui(); 
            for (int p=0; p < total; p++)
            {
                Pictures[p] = getImage(getCodeBase(),"Katrina"+".JPEG");  // Katrina is the folder name of required pics which is also in the same directory having .class file.
        prepareImage(Pictures[p], this);
            }
        }
    private void displayImage(int n)
        {
        Graphics g = imageCanvas.getGraphics();
        g.clearRect(10, 10, 700, 700);
        g.drawImage(Pictures[n], 30, 10, this);
        g.drawString("Image: "+(n+1)+"/"+total, 30, 500);
    }
        public void drawFirst()
        {
            displayImage(0);
    } 
        public void drawLast()
        {
            displayImage(total-1);
    } 
        public void drawPrevious()
        {
                i = i - 1;
        if (i <= -1)
                {
            i = total-1;
        }
        displayImage(i);
    }
        public void drawNext()
        {
                i = i + 1;
        if (i == total)
                {
            i = 0;
                }
                displayImage(i);
          } 
        public void actionPerformed(ActionEvent e)
        {
            if (e.getSource() == previous)
            drawPrevious();
            else if (e.getSource() == first)
            drawFirst();
            else if (e.getSource() == last)
            drawLast();
            else if (e.getSource() == next)
            drawNext();
          } 

    @Override
    public void paint(Graphics g)
        {
        drawFirst();
        i = 0;
    }

    private void makeGui() {

        setBackground(Color.black);
        setForeground(Color.white);
        setLayout(new BorderLayout());

        Panel p1 = new Panel();

        p1.add(previous);
        p1.add(first);

        p1.add(next);
        p1.add(last);

        add(BorderLayout.NORTH, p1);
        add(BorderLayout.CENTER, imageCanvas);

        previous.addActionListener(this);
        first.addActionListener(this);
        last.addActionListener(this);
        next.addActionListener(this);

    } 
} 

Here's my html file for the Applet:----

<html>
<head>
<title>Photo Album</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>

<body bgcolor="#FFFFFF" text="#000000">
<p align="center">Photo Album Applet</p>
<hr size="1" align="center">
<div align="center">
<applet code="PhotoAlbum.class" width="700" height="700"> 
<PARAM NAME="IMAGE1" VALUE="Katrina/kat1.JPEG">
<PARAM NAME="IMAGE2" VALUE="Katrina/kat2.JPEG">
<PARAM NAME="IMAGE3" VALUE="Katrina/kat3.JPEG">
<PARAM NAME="IMAGE4" VALUE="Katrina/kat4.JPEG">
<PARAM NAME="IMAGE5" VALUE="Katrina/kat5.JPEG">
 </applet>
 </div>
</body>
</html>

Plzz look through it.Thanx in advance........

Dani AI

Generated

Two things to check quickly: (A) whether the browser/environment can run applets at all, and (B) whether the applet/class/image loading logic and drawing code are correct.

Modern browsers: most current browsers no longer support the Java browser plugin and the old <applet> mechanism, so an applet page will simply fail to load unless you run it in a legacy setup. (developer.mozilla.org)

If you want to verify the applet itself (rather than the browser), run it outside the browser and watch the Java console. Use appletviewer PhotoAlbum.html to run the HTML locally and enable the Java Console (Java Control Panel → Advanced → Show Console) so you can see exceptions such as NoClassDefFoundError or UnsupportedClassVersionError (compiled-for-a-newer-JDK). (docs.oracle.com)

Code-specific, actionable fixes (these are the common causes in threads like this):

  • Don’t draw by calling getGraphics() on a component; that drawing is transient. Instead put drawing code in the component’s paint/paintComponent and call repaint() when you change the image. (docs.oracle.com)
  • Make sure images are fully loaded before you draw them: use MediaTracker or image-observer logic (or check prepareImage + imageUpdate) so drawImage gets valid pixels. (docs.oracle.com)
  • Verify file locations and casing (server/OS can be case-sensitive), that PhotoAlbum.class is in the right directory or archive, and that the HTML code/codebase/archive match the class/package layout. If you compiled with a newer JDK than the JRE/plugin, recompile with a compatible -target or install a matching JRE.

Checklist (quick):

  • Try a minimal “Hello, applet” example first (as suggested).
  • Run with appletviewer and post the Java Console output if errors appear.
  • Move image-drawing into a proper paint routine and use MediaTracker/repaint.
  • If you need this to work in modern web browsers, consider rewriting as a small Swing/JavaFX app or porting to HTML5/JS—browser applet support is effectively gone.

If you paste the Java Console text and a short directory listing (HTML, .class, and image filenames), it’s possible to give a targeted fix.

Recommended Answers

All 6 Replies

Plzz solve my problem.........
-- look through it,plzzzzz

My JApplet skills are a little rusty. But this is what I would suggest. Have you tried to run a single applet as an example that just displays a message in the browser?
Take an example from a tutorial and see if it is displayed correctly.
Then remove what you don't need and try to display everything that you will need except from the pictures.
When you do the above try to add a single picture from a file.
Then try to add the pictures you want.
If you try to do all in once you will not be able to know what is the mistake you have made. But if you try it step by step and somewhere you get an error, you will know at which step is the error.

For example:
don't use: <PARAM NAME="IMAGE1" VALUE="Katrina/kat1.JPEG">
Try at first to hardcode the image in the JApplet class and when you manage to display it, then try to take it from the html.
In that way you will know if the reason why the image is not displayed is the way you get the file name from the html or the code you have in the applet for displaying it.

Plzz solve my problem.........
-- look through it,plzzzzz

"Plzz" is not a word. Please have the consideration to use proper English (at least as much as possible if your English is limited) if you are requesting help. Demanding help in bold text with gibberish words is just plain rude and not likely to get much help.

commented: I agree. +3

--- Thanx for your suggestions dude.But I think we are here for not these type of stuffs.... If you can help then you are welcome otherwise please not post these type of stupid threads...

commented: Bad attitude. +0

-- I have tried to display the Applet in html file.....it works fine... now i will trying to do this one in steps....Thanx for your suggestions.....

@Ezzaral--- Thanx for your suggestions dude.But I think we are here for not these type of stuffs.... If you can help then you are welcome otherwise please not post these type of stupid threads...

Those suggestions are in accordance with the forum rules that you agree to abide by when you create an account. http://www.daniweb.com/forums/faq.php?faq=daniweb_policies#faq_keep_it_clean
Perhaps you should read them.

Be a part of the DaniWeb community

We're a friendly, industry-focused community of developers, IT pros, digital marketers, and technology enthusiasts meeting, networking, learning, and sharing knowledge.