On May 7, 12:26=A0pm, Knute Johnson <nos...@[EMAIL PROTECTED]
>
wrote:
> bH wrote:
> > On May 7, 1:41 am, Knute Johnson <nos...@[EMAIL PROTECTED]
>
> > wrote:
> >> bH wrote:
> >>> Hi Knute,
> >>> You wrote "If you jar up your Applet, access the
> >>> image file with; getImage(getClass().getResource
> >>> ("fname.jpg"));
> >>> The applet is correctly jar'd along with the image
> >>> and shows as expected when the jar is opened.
> >>> I have tested to see that it does work.
> >>> I do not know what, if anything, goes into the ()
> >>> of getImage(getClass().getResource())
> >>> to exctract only the image from the jar by itself,
> >>> so that the image can go into
> >>> another program in the same folder.
> >>> im****t java.awt.*;
> >>> im****t java.applet.Applet;
> >>> im****t java.awt.Image;
> >>> public class ImageAppletBriefX extends Applet
> >>> =A0 {
> >>> =A0 private Image ioStream;
> >>> =A0 private String errorMessage =3D null;
> >>> =A0 public void init() {
> >>> =A0 =A0 try
> >>> =A0 =A0 =A0 {
> >>> =A0 =A0 =A0 // the jar containing the image is
> >>> =A0 =A0 =A0 //"TestLoadImage.jar"
> >>> =A0 =A0 =A0 // the image file in the jar is "JBsm.JPG"
> >>> =A0 =A0 =A0 ioStream =3D getImage(getClass().getResource());
> >>> =A0 =A0 =A0 // << the line in question is above
> >>> =A0 =A0 =A0 repaint();
> >>> =A0 =A0 =A0 }
> >>> =A0 =A0 catch (Exception netProblem )
> >>> =A0 =A0 =A0 {
> >>> =A0 =A0 =A0 errorMessage =3D "Could not reach image";
> >>> =A0 =A0 =A0 }
> >>> =A0 =A0 }
> >>> =A0 public void paint( Graphics display)
> >>> =A0 =A0 {
> >>> =A0 =A0 if ( errorMessage =3D=3D null )
> >>> =A0 =A0 =A0 display.drawImage( ioStream, 0, 0, this );
> >>> =A0 =A0 else
> >>> =A0 =A0 =A0 display.drawString( errorMessage, 10, 10 );
> >>> =A0 =A0 }
> >>> =A0 }
> >>> Thanks for your help up to this point
> >>> bH
> >> I'm not exactly clear what your problem is here. =A0But I will give
you=
a
> >> complete example. =A0Assume you have an image file named
"kittens.jpg" =
and
> >> you want to display it in your Applet. =A0Furthermore you want to
deplo=
y
> >> your Applet from a .jar file with the code and image store in the
.jar.=
>
> >> im****t java.applet.*;
> >> im****t java.awt.*;
>
> >> public class test1 extends Applet {
> >> =A0 =A0 =A0Image image;
>
> >> =A0 =A0 =A0public void init() {
> >> =A0 =A0 =A0 =A0 =A0image =3D
getImage(getClass().getResource("kittens.j=
pg"));
> >> =A0 =A0 =A0}
>
> >> =A0 =A0 =A0public void paint(Graphics g) {
> >> =A0 =A0 =A0 =A0 =A0g.setColor(Color.RED);
>
> >> =A0 =A0 =A0 =A0 =A0if (!g.drawImage(image,0,0,this))
> >> =A0 =A0 =A0 =A0 =A0 =A0 =A0g.drawString("Loading Image",10,20);
> >> =A0 =A0 =A0}
>
> >> }
>
> >> Compile the code above. =A0Jar up the file with the following
command;
>
> >> jar cvfM test1.jar test1*.class kittens.jpg
>
> >> This stores all class files from the test1 class and the image file
int=
o
> >> the jar.
>
> >> <html>
> >> =A0 =A0 =A0<head>
> >> =A0 =A0 =A0</head>
> >> =A0 =A0 =A0<body>
> >> =A0 =A0 =A0 =A0 =A0<applet archive=3D"test1.jar" code=3D"test1.class"
> >> =A0 =A0 =A0 =A0 =A0 width=3D"640" height=3D"480">
> >> =A0 =A0 =A0 =A0 =A0</applet>
> >> =A0 =A0 =A0</body>
> >> </html>
>
> >> Create the html file above, I called mine test1.html.
>
> >> Now run the appletviewer or load the html file with your browser;
>
> >> appletviewer test1.html
>
> >> The appletviewer/browser will load the .jar file and run the
> >> test1.class, reading the kittens.jpg image file from the .jar and
> >> displaying it. =A0Until the image is completely loaded the message
> >> "Loading Image" will be drawn onto the Applet as well.
>
> >> You do not need a repaint() call if you are using the
> >> ImageProducer/ImageObserver scheme.
>
> >> If that is not what you needed, then please post again.
>
> >> --
>
> >> Knute Johnson
> >> email s/nospam/linux/
>
> >> --
> >> Posted via NewsDemon.com - Premium Uncensored Newsgroup Service
> >> =A0 =A0 =A0 ------->>>>>>http://www.NewsDemon.com<<<<<<------
> >> Unlimited Access, Anonymous Accounts, Uncensored Broadband Access-
Hide=
quoted text -
>
> >> - Show quoted text -
>
> > Hi Knute,
> > I was able to accomplish your html model above earlier
> > and it did show the image as the original applet did,
> > Thank you for your html gift above.
>
> > Now for the rest of it. I was hoping that I might extract the
> > image "kittens.jpg" ONLY from the "test1.jar" and use the
> > the image in another applet. All be it by coding differently in a
> > second
> > applet, and make "kittens.jpg" appeared as coming from the jar.
>
> > I guess that what I was trying to do was make some sense out of
> > what Mark Space was saying above....
> > "Make this image into a resource, and use
> > getResourceAsStream(). =A0That's the correct way to package extra
files
> > with an applet."
> > Can this be changed to reflect getting the image from the jar?
> > image =3D getImage(getClass().getResource("kittens.jpg"));
>
> getResourceAsStream() just gets you the image data in a stream as
> opposed to the URL. =A0That won't help you with your question.
>
> > Any possibility of coding to get just the image ("kittens.jpg") into
> > another applet using that with the idea that Mark Space is saying.
> > If that is not what he was suggesting then there is nothing more.
>
> > Thanks for your prompt reply.
>
> > bH
>
> Yes. =A0You can specify many .jar files in the ARCHIVE parameter of the
> APPLET tag. =A0Just separate them with commas.
>
> <html>
> =A0 =A0 =A0<head>
> =A0 =A0 =A0</head>
> =A0 =A0 =A0<body>
> =A0 =A0 =A0 =A0 =A0<applet archive=3D"test1.jar,test2.jar"
code=3D"test2.c=
lass"
> =A0 =A0 =A0 =A0 =A0 width=3D"640" height=3D"480">
> =A0 =A0 =A0 =A0 =A0</applet>
> =A0 =A0 =A0</body>
> </html>
>
> The HTML above loads both the test1.jar and test2.jar and runs the class
> test2. =A0The code for test2.java is almost the same as test1.java.
>
> im****t java.applet.*;
> im****t java.awt.*;
>
> public class test2 extends Applet {
> =A0 =A0 =A0Image image;
>
> =A0 =A0 =A0public void init() {
> =A0 =A0 =A0 =A0 =A0image =3D
getImage(getClass().getResource("kittens.jpg"=
));
> =A0 =A0 =A0}
>
> =A0 =A0 =A0public void paint(Graphics g) {
> =A0 =A0 =A0 =A0 =A0g.setColor(Color.BLUE);
>
> =A0 =A0 =A0 =A0 =A0if (!g.drawImage(image,0,0,this))
> =A0 =A0 =A0 =A0 =A0 =A0 =A0g.drawString("Loading Image",10,20);
> =A0 =A0 =A0}
>
> }
>
> --
>
> Knute Johnson
> email s/nospam/linux/
>
> --
> Posted via NewsDemon.com - Premium Uncensored Newsgroup Service
> =A0 =A0 =A0 ------->>>>>>http://www.NewsDemon.com<<<<<<------
> Unlimited Access, Anonymous Accounts, Uncensored Broadband Access- Hide
qu=
oted text -
>
> - Show quoted text -
Hi Knute,
Sorry but I cannot put this away because I cannot understand
something.
You have the image in a ("kittens.jpg") in a jar that has the name
"KnutesTest1.jar" (I made that name up here for the discussion).
I am now going to run your "test2" and I use your program above that
is supposed to access "KnutesTest1.jar" to grab the image
"kittens.jpg".
Yet in "test2" there is no clue that I can see where it is find the
image
you referred in test2:
"image =3D getImage(getClass().getResource("kittens.jpg"));"
It can't grab resources that, I don't think, that
are not stated.
Can you please clarify?
TIA,
bH


|