> I'm trying to make a chat program and i don't know how to send the
> strings between the chat client and server, can anyone help?
Read the Socket tutorial.
http://java.sun.com/docs/books/tutorial/networking/sockets/index.html
I have a very simplified chat Applet and server posted on my website.
--
Knute Johnson
email s/nospam/knute/
I'm trying to learn java through examples....
I've compiled and launched "ImageObserverExample " and I get the error
below : no protocol.
I've submitted the argument in any form...Where is the problem ?
Many thanks.
> java ImageObserverExample "http=://digilander.libero.it/landodgl/emil.gif"
> mio http=://digilander.libero.it/landodgl/emil.gif
> java.net.MalformedURLException: no protocol: http=://digilander.libero.it/landodgl/emil.gif
> at java.net.URL.<init>(URL.java:567)
> at java.net.URL.<init>(URL.java:464)
> at java.net.URL.<init>(URL.java:413)
I' ve seen this my problem...the extra "=" ....after "http" .
but also with the right http adress the program stops without message ...
It worked fine for me with the URL above. Maybe you should give me a
little more information. Can you reach the URL with a browser? Does
the JFrame show up?
I can see the image with my Firefox ....and JFrame doesn't show up .
It works fine if I clic it in your site....
My O S is linux....
I've traced with System.out.println and these steps are ok >>>>
java ImageObserverExample http://digilander.libero.it/landodgl/emil.gif
my http://digilander.libero.it/landodgl/emil.gif
my sun.awt.image.ToolkitImage@1270b73
back from ImageObserverExample
setvisible done...but NO frame
Your code with the added System.out.println statements.
public class ImageObserverExample extends JPanel {
Image image;
public ImageObserverExample(String urlString) {
try {
System.out.println("my " + urlString);
URL url = new URL(urlString);
// use createImage instead of getImage to avoid caching
image = getToolkit().createImage(url);
System.out.println("my " + image);
} catch (Exception e) {
e.printStackTrace();
}
}
public void paintComponent(Graphics g) {
g.drawImage(image,0,0,this);
}
public static void main(final String[] args) {
Runnable r = new Runnable() {
public void run() {
JFrame f = new JFrame("ImageObserverExample");
f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
ImageObserverExample ioe = new
ImageObserverExample(args[0]);
System.out.println(" back from ImageObserverExample ");
f.add(ioe,BorderLayout.CENTER);
f.pack();
f.setVisible(true);
System.out.println(" setvisible done...but NO frame ");
}
};
EventQueue.invokeLater(r);
}
}
I just tried it on XP and Fedora 7. It works fine for me. On linux the
JFrame can be very small and difficult to find if it is at its minimum
size. The ImageObserverExample creates the frame before the image is
loaded and so the frame is created at a minimum size. I would suggest
that you uncomment the imageUpdate() and allow that to resize the frame.
That should make it visible for you. The other option is to specify a
preferred size for the frame.
With imageUpdate it works ! Who chooses to use paintComponent or
imageUpdate ?
You don't code a repaint call......
Many thanks.
It is still using paintComponent(). The imageUpdate() method is part of
the ImageObserver interface. I use it to tell me that the size of the
image has been determined so I can set the preferred size of the JPanel.
Then I pack the frame again to make it the correct size. This is the
major drawback of using the ImageObserver interface to load images. If
you are writing code to be used with current compilers I suggest you use
the ImageIO class to load the image. repaint() is not needed with the
ImageObserver interface as any class that implements that interface will
repaint the image as necessary. It works well in a few instances but I
would still try to use ImageIO whenever possible.