Easy to Learn Java: Programming Articles, Examples and Tips

Start with Java in a few days with Java Lessons or Lectures

Home

Code Examples

Java Tools

More Java Tools!

Java Forum

All Java Tips

Books

Submit News
Search the site here...
Search...
 
Search the JavaFAQ.nu
1000 Java Tips ebook

1000 Java Tips - Click here for the high resolution copy!1000 Java Tips - Click here for the high resolution copy!

Java Screensaver, take it here

Free "1000 Java Tips" eBook is here! It is huge collection of big and small Java programming articles and tips. Please take your copy here.

Take your copy of free "Java Technology Screensaver"!.

Easy Learn Java: Programming Articles, Examples and Tips - Page 140


Previous 1060 Stories (530 Pages, 2 Per Page) Next

Java Newsletters: Java Newsletters Archive: 7

Go to all tips in Java Newsletters

The Java FAQ Daily Tips is a newsletter that is only sent to those
who have specifically subscribed to it.
******************************************************************
*
* ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
* > The Java FAQ Daily Tips, week edition <
* ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
*
* Issue No: 7 18 September 2000
* http://www.javafaq.nu/
******************************************************************

Table of Contents

> How can I let dial a phone number with Java
> About serialization...
> Again about difference between AWT and Swing
> Can a java application be run off of a CD...?
> How to cut, copy & paste?
> How does my applet read images from jar file?
> Essential difference between an abstract class
and an interface.
******************************************************************

Tip 1

How can I let dial a phone number with a modem in a Java app.?
Is there a way without a System.exec() call and without any M$
classes?

A: You could use javax.comm to do it manually via the serial
port and the good old AT command set on the modem. Alternatively,
you might look at JTAPI, but that might have its own problems
and a lot of overkill.

******************************************************************

Tip 2

Question: If I have a class that implements the Serializable
interface, but it has member variables that reference objects that
do not implement the Serializable interface, it appears that I
can't serialize an instance of the class. I keep getting:

java.io.NotSerializableException

for one of the objects referenced by a member variable.

Am I correct, or am I just missing something. Also, if anyone
knows a work-around to serialize non-serializable objects,
I'd like to hear about it. Unfortunately, I have no control over
the classes I'm trying to serialize, so I tried putting a
serializable wrapper around them, but that didn't work.

Answer: Do you really need to serialize those members of your
class that aren't serializable?
In other words, make them private:

class Foo implements Serializable {
private Bar bar;
}

Do you *need* to maintain the state of the 'bar' variable when
serializing/deserializing Foo? If not, simply declare 'bar'
as 'transient' and it will be ingored during serialization.

******************************************************************

Tip 3

I have a question: What are the architectural differences between
Swing and AWT?

There are no big architectural differences, the class hierarchy
is almost the same. The reason is that Swing is built upon AWT.

The most significant difference is how the components are drawn to
the screen. AWT is so called heavyweight components and have their
own viewport, which sends the output to the screen. Swing is
ligthweight components and does not write itself to the screen,
but redirect it to the component it builds on. Heavyweight
components also have their own z-ordering. This is the reason
why you can't combine AWT and Swing in the same container. If you
do, AWT will always be drawn on top of the Swing components.

You can combine AWT and Swing, just don't do it in the same
container (e.g. panel, groupbox, etc.) and don't put a heavyweight
component inside a lightweight.

Another difference is that Swing is pure Java, and therefore
platform independent. Swing looks identically on all platforms,
while AWT looks different on different platforms.
by Odd Vinje odvinjee@online.no

******************************************************************
Extra Tip from our sponsor.

When you want to bring files from job or your friend home simply
copy them to your free Internet 100Mb X: drive and forget about
floppy/zip disks and other staff!

It is better to keep saved money in your pockets than diskettes!

Just add it to your computer as an aditional drive (easy auto
plugin!) and use with ususal file explorer or any other kind of
file management browser.

Do not leave it for tomorrow! Do it here right now!
http://service.bfast.com/bfast/click?bfmid=31874963&siteid=34480596&bfpage=1
*******************************************************************

Tip 4

Can a java application be run off of a CD without installing
anything (i.e. runtime, etc) on the target computer?
I would like to put my application and hand it out as a demo, but
I want to make it easy to view.

Answer1: The JRE was made so that it didn't need to be "installed".
What I did in one case was to simply put the JRE into a jre folder
in the same directory as my application then invoke it from that
directory using:

jreinjre.exe -cp MyJar.java MyClass

That was for JDK1.1 and you have to modify it slightly for Java 2.
But this did not require any installation of environment variables
to be set up. The JRE was smart enough to know how to get to its
system classes relative to where the jre.exe file was located.
by Dale King KingDo@TCE.com

Answer2: you could try a Java to native compiler.

******************************************************************

Tip 5

I've got a (simple) menu on a new application and am trying to put
in the works behind the cut, copy & paste menu options - does
anyone know how I can do this - what's the code or can you point
me in the right direction?

A: Look at java.awt.datatransfer package. It contains much of the
tools necessary to implement cut. copy, paste.

******************************************************************

Tip 6

I am writing an applet that will use images. I would like to ship
out the images using a jar file that contains all the images that
the applet is going to use. I have seen a piece of code that
does that in the past, but I don't remember where.

A: The following is from:
http://developer.netscape.com/docs/technote/java/getresource/getresource.html

import java.applet.*;
import java.awt.*;
import java.io.*;

public class ResourceDemoApplet extends Applet {
Image m_image;

public void init() {
try {
InputStream in = getClass().getResourceAsStream("my.gif");
if (in == null) {
System.err.println("Image not found.");
return;
}
byte[] buffer = new byte[in.available()];
in.read(buffer);
m_image =
Toolkit.getDefaultToolkit().createImage(buffer);
} catch (java.io.IOException e) {
System.err.println("Unable to read image.");
e.printStackTrace();
}
}

public void paint(Graphics g) {
if (m_image == null)
return;

Dimension d = getSize();
g.drawImage(m_image, 0, 0, d.width,
d.height, Color.white, this);
}
}
by David Risner drisner@eskimos.com

******************************************************************

Tip 7

What is the essential difference between an abstract class and an
interface? What dictates the choice of one over the other?

A: You can only extend one class (abstract or not) whereas you
can always implement one or more interfaces.
Interfaces are Java's way to support multiple inheritances.

Please recommend us to your friends and colleagues!


The Java FAQ Daily Tips is a newsletter that is only sent to those
who have specifically subscribed to it.


John Andersson, Editor mailto:info@javafaq.nu

To subscribe to The Java FAQ Daily
print in subject field: "Subscribe" and
mailto:subscription@javafaq.nu

To unsubscribe print in subject field: "Unsubscribe"
mailto:subscription@javafaq.nu

You can find our tips on site later also!
Copyright (c) 2000 John Andersson
-------------------------------------------------------------------



6 comments | Printer Friendly Page  Send to a Friend | Java Newsletters | Score: 0
Posted by jalex on Wednesday, January 28, 2004 (16:05:26) (2502 reads)

Java Newsletters: Java Newsletters Archive: 6

Go to all tips in Java Newsletters

Hello dear subsribers!

We continue to send you our daily Java tips!

Today you receive our tips that will be published
on our site in October, 18 and following week.

This is not sent unsolicited. You are receiving this
newsletter because you signed up for it, or a friend has
forwarded it for you.
******************************************************
Please, if you like our tips, recommend us to your friends and colleagues.
******************************************************
Tip1

How does Java read the text files? Can Java read the files that are in
other formats? Is the read file method in Java only recognizes the
file in .txt or other text format?

Answer: Java can read any text file (using a PrintWriter for example),
the attribute at the end is an indictor and thus is not relevant as long as the
actual code read is in the correct format. It can read files that are in other
formats bytes etc and if you have a wierd format you could extend the IO
mechanism with some work to work with that.

......................................................................………………………..
Tip 2

How can I take a program that runs in a DOS shell and send the
text that comes from the shell program into a Java program where
it can analyzed, etc.?
Answer: From a command line, use a pipe (with the "|" symbol):

c:> dosprogram | java JavaProgram

In the Java program, read the text from System.in:

public static void main(String[] args) throws IOException {
int nLines = 0;
BufferedReader in =
new BufferedReader(
new InputStreamReader( System.in));
for (;Wink {
String line = in.readLine();
if (line == null)
break;
nLines++;
System.out.println(nLines + ":" + line);
}
}

......................................................................………………………..
Tip 3

Q: When creating a new file, is it possible to control whether or not
an existing file with the same name is/is not overwritten? I haven't
been able to answer this by looking at the java.io API…

Answer: There is a method in File to atomically create a new file that will
fail if the file exists... You can use this to try creating the file, and if it exists
already don't ever open the FileOutputStream to write contents.

......................................................................………………………..

Tip 4

How does a java application stored within a jar file reference/edit/read
other files (like .txt, or data files,) that are also within the jar file?

Answer: Classes located in a JAR archive are loaded via a class loader
whose purpose is to load classes form JAR archives. This ClassLoader
implements the getResource and getResourceAsStream methods to
retrieve files from the JAR file. So you can take any class from the JAR
and say ClassName.class.getClassLoader().getResource("fname");
to get the resource and use it.

......................................................................………………………..
Tip 5

If there is a way to run a java program by just typing the name in
UNIX? I mean instead of typing for example "java Main" just type
"Main" and run the program.
And how to implement that in a makefile?

Answer: Write a script that runs the program and put it in your path. For
instance:

#!/bin/sh
java BlahBlah

Call this whatever you want, mv it to your /usr/local/bin directory, then just type it at the command line and BlahBlah will be run.
......................................................................………………………..
Tip 6

Could someone show me a basic File I/O example? I just can't figure out streams. I'm willing to accept basic mockery in exchange...
Answer:
import java.io.*;

public class FileIO {

public static void main(String[] args) throws Exception {
if(args.length!=1){
System.out.println("Invalid parameters!!!");
System.exit(0);
}
File fl = new File(args[0]);
FileReader fileReader = new FileReader(fl);
BufferedReader bufferedReader = new BufferedReader(fileReader);
String currentLine;
while( (currentLine = bufferedReader.readLine()) != null ){
System.out.println(currentLine);
}
}
}
......................................................................………………………..
Tip 7

I want to keep my java GUI always on the top of any other desktop
application. Any idea?

Answer: Spawn a thread that knows about the parent Window,
and every X milliseconds, executes the toFront () command of
that window. Just remember to execute it using
SwingUtilities.invokeLater (), and don't
let your users launch two apps, unless you enjoy screen lockup!


With best regards Java FAQ team, http://javafaq.nu/java
Free Daily Java Tips, free books, code examples and hand-selected links!
You can find our tips on site later also!
Recommend us to your friends!



5 comments | Printer Friendly Page  Send to a Friend | Java Newsletters | Score: 0
Posted by jalex on Wednesday, January 28, 2004 (16:03:45) (2808 reads)

Previous 1060 Stories (530 Pages, 2 Per Page) Next

530| 529| 528| 527| 526| 525| 524| 523| 522| 521| 520| 519| 518| 517| 516| 515| 514| 513| 512| 511| 510| 509| 508| 507| 506| 505| 504| 503| 502| 501| 500| 499| 498| 497| 496| 495| 494| 493| 492| 491| 490| 489| 488| 487| 486| 485| 484| 483| 482| 481| 480| 479| 478| 477| 476| 475| 474| 473| 472| 471| 470| 469| 468| 467| 466| 465| 464| 463| 462| 461| 460| 459| 458| 457| 456| 455| 454| 453| 452| 451| 450| 449| 448| 447| 446| 445| 444| 443| 442| 441| 440| 439| 438| 437| 436| 435| 434| 433| 432| 431| 430| 429| 428| 427| 426| 425| 424| 423| 422| 421| 420| 419| 418| 417| 416| 415| 414| 413| 412| 411| 410| 409| 408| 407| 406| 405| 404| 403| 402| 401| 400| 399| 398| 397| 396| 395| 394| 393| 392| 391| 390| 389| 388| 387| 386| 385| 384| 383| 382| 381| 380| 379| 378| 377| 376| 375| 374| 373| 372| 371| 370| 369| 368| 367| 366| 365| 364| 363| 362| 361| 360| 359| 358| 357| 356| 355| 354| 353| 352| 351| 350| 349| 348| 347| 346| 345| 344| 343| 342| 341| 340| 339| 338| 337| 336| 335| 334| 333| 332| 331| 330| 329| 328| 327| 326| 325| 324| 323| 322| 321| 320| 319| 318| 317| 316| 315| 314| 313| 312| 311| 310| 309| 308| 307| 306| 305| 304| 303| 302| 301| 300| 299| 298| 297| 296| 295| 294| 293| 292| 291| 290| 289| 288| 287| 286| 285| 284| 283| 282| 281| 280| 279| 278| 277| 276| 275| 274| 273| 272| 271| 270| 269| 268| 267| 266| 265| 264| 263| 262| 261| 260| 259| 258| 257| 256| 255| 254| 253| 252| 251| 250| 249| 248| 247| 246| 245| 244| 243| 242| 241| 240| 239| 238| 237| 236| 235| 234| 233| 232| 231| 230| 229| 228| 227| 226| 225| 224| 223| 222| 221| 220| 219| 218| 217| 216| 215| 214| 213| 212| 211| 210| 209| 208| 207| 206| 205| 204| 203| 202| 201| 200| 199| 198| 197| 196| 195| 194| 193| 192| 191| 190| 189| 188| 187| 186| 185| 184| 183| 182| 181| 180| 179| 178| 177| 176| 175| 174| 173| 172| 171| 170| 169| 168| 167| 166| 165| 164| 163| 162| 161| 160| 159| 158| 157| 156| 155| 154| 153| 152| 151| 150| 149| 148| 147| 146| 145| 144| 143| 142| 141|
140
| 139| 138| 137| 136| 135| 134| 133| 132| 131| 130| 129| 128| 127| 126| 125| 124| 123| 122| 121| 120| 119| 118| 117| 116| 115| 114| 113| 112| 111| 110| 109| 108| 107| 106| 105| 104| 103| 102| 101| 100| 99| 98| 97| 96| 95| 94| 93| 92| 91| 90| 89| 88| 87| 86| 85| 84| 83| 82| 81| 80| 79| 78| 77| 76| 75| 74| 73| 72| 71| 70| 69| 68| 67| 66| 65| 64| 63| 62| 61| 60| 59| 58| 57| 56| 55| 54| 53| 52| 51| 50| 49| 48| 47| 46| 45| 44| 43| 42| 41| 40| 39| 38| 37| 36| 35| 34| 33| 32| 31| 30| 29| 28| 27| 26| 25| 24| 23| 22| 21| 20| 19| 18| 17| 16| 15| 14| 13| 12| 11| 10| 9| 8| 7| 6| 5| 4| 3| 2| 1|


Home Code Examples Java Forum All Java Tips Books Submit News, Code... Search... Offshore Software Tech Doodling

RSS feed Java FAQ RSS feed Java FAQ News     

    RSS feed Java Forums RSS feed Java Forums

All logos and trademarks in this site are property of their respective owner. The comments are property of their posters, all the rest 1999-2006 by Java FAQs Daily Tips.

Interactive software released under GNU GPL, Code Credits, Privacy Policy