images IN frames?

Is it possible to load images in frames?

meaning loading images in extends Frame.

Using sdk2 (jdk 1.2.2.)

how to load? *i not expecting jframe*
Who is Participating?
Ravindra76Connect With a Mentor Commented:
import java.awt.*;
import java.awt.event.*;

public class Test extends Frame {
      MyCanvas can;
      MyWindowAdapter maw;
      Image img;
      public Test() {
            super("Test text components");
            img = getToolkit().getImage("a.gif");
            can = new MyCanvas();
            addWindowListener(maw=new MyWindowAdapter(this));

      public static void main(String arg[]) {
            Test t = new Test();
            t.setSize(300, 300);       

      class MyCanvas extends Canvas {
            public MyCanvas(){
            public void paint(Graphics g) {

       class MyWindowAdapter extends WindowAdapter {
            Frame f;
            public MyWindowAdapter(Frame f) {
                  this.f = f;
            public void windowClosing(WindowEvent e) {
java_kevinAuthor Commented:
But if i extends applet instead of canvas, wat's the diff(erence)?
java_kevinAuthor Commented:
But if i extends applet instead of canvas, wat's the diff(erence)?
Never miss a deadline with

The revolutionary project management tool is here!   Plan visually with a single glance and make sure your projects get done.


Applet has to be executed on browser..

It is not good to chagne MyCanvas to extend Canvas.

Other wise U can change Frame to Applet

But applet won't have constructors( They have. But we won't  use).

So all the code for frame constructor should be placed in init() method of applet

Best of luck
java_kevinAuthor Commented:
i mean, for the "class within  class", u extended Canvas. If i extend Applet instead, will there be any difference in the way of coding? and what's the difference between extends applet and canvas.

Right now, I'm having applet within frame. Using frame is to enable my project to work. Applet is to provide the image rendering.
If U ewxtend MyCanvas as applet,
When U have to construct the MyCanvs(), it has to call constructor ..
so applet has to be constructed.
According to sun documentation, don's use constructor to applet because after init() method only,
they are able to execute properly. If U put constructor to applet, the constructor has to be called before
init() which is not preferable.

MyCanvas extending Canvas does not have such problems
Otherwise U can extends as MyCanvas extends Panel, which is same as Applet extending Panel..

ANy how, putting applet in frame for painting is not a better idea.
So U can extend MyCanvas with Canvas or Panel ...

Best of luck

When I subclass Applet, why should I put setup code in the init() method? Why not just a constructor for
my class?

A. The browser invokes your constructor, then setStub, then init(). Hence when your constructor is
invoked, the AppletStub (and through it the AppletContext) is not yet available. Although in principle you
can do things in the constructor that don't rely (even indirectly) on the AppletStub or AppletContext, it is
less error-prone to simply defer all setup to the init method. That way you know that anything that needs
the stub/context will have it available.

Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.

All Courses

From novice to tech pro — start learning today.