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 469


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

Strange classes in Java: LayoutManager and LayoutManager2. Need you even LayoutM

Go to all tips in Swing, AWT

Question: I just found in Java API LayoutManager LayoutManager2 classess.

Strange naming, does it mean that in future there will be LayoutManager LayoutManager3, LayoutManager LayoutManager4 and even LayoutManager LayoutManager5? Smile
LayoutManager vs LayoutManager2 vs LayoutManager3?


Answer: It is strange indeed. I think it is crisis in the SUN with good names for Java packages and names. David Flanagan in his blog noticed that longest Java name is 36 characters long and there a lot of strange long names, like:

36 javax.xml.transform.TransformerFactoryConfigurationError     
35 javax.naming.AuthenticationNotSupportedException     
35 javax.naming.directory.InvalidAttributeIdentifierException     
34 java.awt.ContainerOrderFocusTraversalPolicy     
34 java.beans.beancontext.BeanContextServiceProviderBeanInfo     
34 java.security.InvalidAlgorithmParameterException     
34 org.omg.PortableInterceptor.ClientRequestInterceptorOperations     
34 org.omg.PortableInterceptor.ServerRequestInterceptorOperations     
 

The LayoutManager3 is on its way to us Smile

If speaking seriously, LayoutManager2 is just very light extension of LayoutManager + 5 more methods. It is quite raw class because SUN writes in the API:

This minimal extension to LayoutManager is intended for tool providers who wish to the creation of constraint-based layouts. It does not yet provide full, general support for custom constraint-based layout managers.

The reason why it is appeared is the problem with interfaces -you can't add a method to an interface, you have to use a  this funny work around. Otherwise all classes that used the first interface will break Sad

If it were an abstract class, this would not be a problem ( you can add methods without breaking compability). So, probably we will see soon LayoutManager3 Smile when new methods will be developed...

LayoutManager2 Java code example you can find here


1993 bytes more | comments? | Printer Friendly Page  Send to a Friend | Score: 0
Posted by Javaaddict on Sunday, August 20, 2006 (13:55:00) (2698 reads)

Tricky Java example: Display Icons without icons.

Go to all tips in Java Code Examples

Jazzmsg is a package with a dialog and a label box class, displays messages with text based icons. Icons are built in and different messages are shown every 2 seconds: INFORMATION, CONFIRM, HELP, WARNING, EXCEPTION, ERROR, NONE (no category, nothing to display!).

Since displayed icons are not real images, it is pretty easy to add your own icon. They are painted using text. That's why the package is so light and fast. If look into the code you will easily find a posibility to add more icons.

How to run it:


Compile java files, put four class files into "jazzmsz" directory and run this command:
"java -classpath . jazzmsz/jazztest"


jazzdlg.java
Code:

/*
 * @(#)jazzdlg.java   1.00 20th January 2000
 *
 * Modification Log:
 *
 */

package jazzmsz;

import java.awt.*;
import java.awt.event.*;


/**
 * A dialog box control with in-build icons.
 * Displays a dialog box with different icons and colors depending
 * on the message type. Has customizable buttons.
 *
 * You are free to use this code and to make modifications provided
 * this notice is retained.
 * <p>
 * If you found this useful, please add a note of acknowledgement to my guestbook,
 * or send me a mail at <a href="mailto:tanmaykm@hotmail.com">tanmaykm@hotmail.com</a>.
 * If you would like to report a bug or suggest some improvements,
 * you are most welcome. I will be happy to help you use this piece of code.
 * <p>
 *
 * @author        Tanmay K. Mohapatra
 * @version     1.00, 20th January, 2000
 */


public class jazzdlg extends Dialog implements ActionListener
{
    private GridBagLayout       gridbag             = null;
    private GridBagConstraints  gbConstr            = null;
    private Panel               ButtonPanel         = null;
    private jazzicon            icon                = null;
    private TextArea            txtMsg              = null;

    String                      sResp               = "";
    boolean                     bSelfDestroy        = true;
    boolean                     bFocusSet           = false;
    Component                   cFocusOn            = null;
    Frame                       ParentFrame         = null;
    static boolean              bForceSetFocus;

    public static final int     NONE = jazzicon.NONE;
    public static final int     INFORMATION = jazzicon.INFORMATION;
    public static final int     CONFIRM = jazzicon.CONFIRM;
    public static final int     HELP = jazzicon.HELP;
    public static final int     WARNING = jazzicon.WARNING;
    public static final int     EXCEPTION = jazzicon.EXCEPTION;
    public static final int     ERROR = jazzicon.ERROR;
   
    private static Color        bgCol, fgCol;
    private static Font         fnt;
   
    /**
     * Constructor
     *
     * @param   parent    parent frame, from where it is being called.
     * @param   sTitle    Title of the dialog box. Default title <b>Message</b> is used if it is null.
     * @param   bModal    whether it is modal.
     */
    public jazzdlg(Frame parent, String sTitle, boolean bModal)
    {
        super(parent, (null==sTitle) ? "Message" : sTitle, bModal);
        ParentFrame=parent;
        setJazzLayout();
    }

    /**
     * Constructor
     *
     * @param   parent    parent frame, from where it is being called.
     * @param   bModal    whether it is modal.
     */
    public jazzdlg(Frame parent, boolean bModal)
    {
        super(parent, bModal);
        ParentFrame=parent;
        setJazzLayout();
    }


    public static void setDlgGui(Color bgColIn, Color fgColIn, Font fntIn)
    {
        jazzdlg.bgCol = bgColIn;
        jazzdlg.fgCol = fgColIn;
        jazzdlg.fnt = fntIn;
    }
   
    /**
     * Shows a message box with the specified properties.
     * Returns the name of the button pressed if it is modal.
     *
     * @param   sTitle       title of the dialog box.
     * @param   sMsg         message to be displayed.
     * @param   sButtons     array of names of buttons to be shown.
     * @param   iType        type of dialog: NONE, INFORMATION, WARNING, EXCEPTION, ERROR,...
     * @param   bWait        true if dialog is to be modal.
     * @param   calledFrom   container from where this is being called (used to center the dialog).
     *
     * @return     the name of the button pressed if the dialog is modal, empty string otherwise.
     */
    public static String showMsgBox (String sTitle, String sMsg, String [] sButtons, int iType, boolean bWait, Container calledFrom)
    {
        String      sResp = "";
        jazzdlg     msgbox;
        Frame       parentFrame;

        parentFrame = findFrame(calledFrom);
        msgbox = new jazzdlg(parentFrame, sTitle, bWait);
        msgbox.txtMsg.setText(sMsg);
        msgbox.icon.setIconCharacterType(iType);

        try
        {
            for (int iIndex=0; ; iIndex++)
            {
                Button b = new Button(sButtons[iIndex]);
                b.addActionListener(msgbox);
                msgbox.ButtonPanel.add(b);
                if(null == msgbox.cFocusOn) msgbox.cFocusOn = b;
            }
        }
        catch (ArrayIndexOutOfBoundsException e)
        {
            // array out of bounds exception. ignore
        }

        msgbox.bSelfDestroy = !bWait;

        if (bWait)
        {
            calledFrom.setEnabled(false);   // parent should not get any events
        }

        msgbox.setVisible(true);
        if (bWait)
        {
            while (msgbox.sResp.equals(""))
            {
                try
                {
                    Thread.yield();
                    Thread.sleep(500);
                }
                catch(InterruptedException ie)
                {
                    // ie
                }
            }
            sResp = msgbox.sResp;
        }

        if (bWait)
        {
            calledFrom.setEnabled(true);
        }

        msgbox = null;
        return sResp;
    }
   
    /**
     * Sets the layout for the message dialog frame. Uses grid bag layout.
     */
    private void setJazzLayout()
    {
        icon        = new jazzicon();
        txtMsg      = new TextArea("", 5, 30, TextArea.SCROLLBARS_NONE);
        ButtonPanel = new Panel();
        gridbag     = new GridBagLayout();
        gbConstr    = new GridBagConstraints();
       
        txtMsg.setEditable(false);
        txtMsg.setEnabled(false);
        icon.setFont(new Font("Courier", Font.BOLD, 30));
       
        if(null != jazzdlg.bgCol) setBackground(jazzdlg.bgCol);
        if(null != jazzdlg.fgCol) setForeground(jazzdlg.fgCol);
        if(null != jazzdlg.fnt)   setFont(jazzdlg.fnt);
        setLayout(gridbag);
       
        gbConstr.ipadx = 0;
        gbConstr.ipady = 0;
        gbConstr.fill = GridBagConstraints.BOTH;
        gbConstr.anchor = GridBagConstraints.NORTHWEST;
        gbConstr.gridheight = GridBagConstraints.REMAINDER;
        gbConstr.gridwidth = GridBagConstraints.RELATIVE;
        gbConstr.weightx = 0;
        gbConstr.weighty = 0;
        gbConstr.gridx = 0;
        gbConstr.gridy = 0;
        gridbag.setConstraints(icon, gbConstr);
        add(icon);
       
        gbConstr.fill = GridBagConstraints.BOTH;
        gbConstr.gridheight = GridBagConstraints.RELATIVE;
        gbConstr.gridwidth = GridBagConstraints.REMAINDER;
        gbConstr.weightx = 1;
        gbConstr.weighty = 1;
        gbConstr.gridx = GridBagConstraints.RELATIVE;
        gbConstr.gridy = 0;
        gridbag.setConstraints(txtMsg, gbConstr);
        add(txtMsg);
       
        gbConstr.fill = GridBagConstraints.NONE;
        gbConstr.anchor = GridBagConstraints.CENTER;
        gbConstr.gridwidth = GridBagConstraints.REMAINDER;
        gbConstr.weightx = 1;
        gbConstr.weighty = 0;
        gbConstr.gridx = GridBagConstraints.RELATIVE;
        gbConstr.gridy = GridBagConstraints.RELATIVE;
        gridbag.setConstraints(ButtonPanel, gbConstr);
        ButtonPanel.setLayout(new GridLayout(1, 0, 5, 25));
        add(ButtonPanel);
    }

    /**
     * Lays out the screen, moves the screen to the center of the parent window,
     * before making the dialog visible.
     */
    public void setVisible(boolean bShow)
    {
        if (true == bShow)
        {
            pack();

            Dimension d = getSize();
            d.width += 100;
            setSize(d);

            try
            {
                if (null != ParentFrame)
                {
                    Rectangle bounds = ParentFrame.getBounds();
                    Rectangle abounds = getBounds();

                    setLocation(bounds.x + (bounds.width - abounds.width) / 2,
                         bounds.y + (bounds.height - abounds.height) / 2);
                }
            }
            catch (Exception e)
            {
                // nothing
            }

            if (bForceSetFocus && (null != cFocusOn))
            {
                cFocusOn.requestFocus();
            }

            super.setVisible(true);
        }
        else
        {
            super.setVisible(false);
        }
    }

    /**
     * Hides the dialog if any button is pressed.
     */
    public void actionPerformed(ActionEvent event)
    {
        sResp = event.getActionCommand();
        setVisible(false);
        dispose();
    }
   
    /**
     * Finds the parent frame of the specified component.
     *
     * @param   calledFrom  container whoose parent to find. <br>
     *                      In this context, the container from where
     *                      showMsgBox was called.
     * @return              the parent frame if found, null otherwise.
     */
    private static Frame findFrame(Container calledFrom)
    {
        if (null != calledFrom)
        {
            Container frameContainer;

            frameContainer = calledFrom;
            do
            {
                if (frameContainer instanceof Frame)
                {
                    return (Frame)frameContainer;
                }
            } while (null != (frameContainer = frameContainer.getParent()));
        }
        return null;
    }
}



jazzicon.java
Code:

/*
 * @(#)jazzicon.java   1.00 20th January 2000
 *
 * Modification Log:
 *
 */

package jazzmsz;

import java.awt.*;
import java.net.MalformedURLException;
import java.net.URL;
import java.io.InputStream;
import java.io.ByteArrayOutputStream;
import java.io.IOException;


/**
 * A icon control with in-build icons.
 * Displays different icons depending on the message type.
 * Has customizable buttons.
 *
 * You are free to use this code and to make modifications provided
 * this notice is retained.
 * <p>
 * If you found this useful, please add a note of acknowledgement to my guestbook,
 * or send me a mail at <a href="mailto:tanmaykm@hotmail.com">tanmaykm@hotmail.com</a>.
 * If you would like to report a bug or suggest some improvements,
 * you are most welcome. I will be happy to help you use this piece of code.
 * <p>
 *
 * @author        Tanmay K. Mohapatra
 * @version     1.00, 20th January, 2000
 */

public class jazzicon extends Canvas
{
    private Image       image;
    private Character   charIcon;
    private String      sIcon;

    public static final int     NONE = 0;
    public static final int     INFORMATION = 1;
    public static final int     CONFIRM = 2;
    public static final int     HELP = 3;
    public static final int     WARNING = 4;
    public static final int     EXCEPTION = 5;
    public static final int     ERROR = 6;
   
    public boolean setIconImage(String sResource)
    {
        if (null != (image = getImageFromResource(sResource)))
        {
            sIcon = null;
            charIcon = null;
            return true;
        }
        return false;
    }
   
    public void setIconCharacter(Character charIn)
    {
        if(null != (charIcon = charIn))
        {
            sIcon = charIcon.toString();
            image = null;
        }
    }
   
    public void setIconCharacterType(int iType)
    {
        switch(iType)
        {
            case INFORMATION:
                setIconCharacter(new Character('i'));
                setForeground(Color.blue);
                setBackground(Color.white);
                break;
            case HELP:
                setIconCharacter(new Character('h'));
                setForeground(Color.blue);
                setBackground(Color.white);
                break;
            case CONFIRM:
                setIconCharacter(new Character('?'));
                setForeground(Color.blue);
                setBackground(Color.white);
                break;
            case WARNING:
                setIconCharacter(new Character('!'));
                setForeground(Color.black);
                setBackground(Color.yellow);
                break;
            case EXCEPTION:
                setIconCharacter(new Character('e'));
                setForeground(Color.black);
                setBackground(Color.orange);
                break;
            case ERROR:
                setIconCharacter(new Character('E'));
                setForeground(Color.white);
                setBackground(Color.red);
                break;
            default:
                setIconCharacter(new Character(' '));
                Component c = getParent();
                if(null != c)
                {
                    setForeground(c.getForeground());
                    setBackground(c.getBackground());
                }
                break;
        }
        repaint();
    }
   
    /**
     * Paints the image on the canvas. Draws a border around it if has focus.
     */
    public void paint(Graphics g)
    {
        Dimension dim = getSize();

        if (null != image)
        {
            g.drawImage (image, 1, 1, dim.width-2, dim.height-2, this);
        }
        else
        {
            g.setColor(getBackground());
            g.fill3DRect(-1, -1, dim.width+2, dim.height+2, true);
            if(null != sIcon)
            {
                FontMetrics fm;
                g.setColor(getForeground());
                int iX, iY;
                iX = dim.width/2;
                iY = dim.height/2;
                fm = g.getFontMetrics();
                iX -= fm.stringWidth(sIcon)/2;
                iY += fm.getDescent();
                g.drawString(sIcon, iX, iY);
                if(!Character.isWhitespace(sIcon.charAt(0))) g.drawRect(0, 0, dim.width, dim.height);
            }
        }
    }

    /**
     * The preferred size of the image.
     */
    public Dimension getPreferredSize()
    {
        if (null == image)
        {
            Font f = getFont();
            if (null == f) f = Font.decode("Courier-bold-30");
            FontMetrics fm = getFontMetrics(f);
            int i = Math.max(fm.getHeight()+4, fm.stringWidth((null == sIcon) ? "X" : sIcon)+4);
            return new Dimension(i, i);
        }
        else
        {
            return new Dimension(image.getWidth(this), image.getHeight(this));
        }
    }

    /**
     * The minimum size of the image.
     */ 
    public Dimension getMinimumSize()
    {
        if (null == image)
        {
            Font f = getFont();
            if (null == f) f = Font.decode("Courier-bold-30");
            FontMetrics fm = getFontMetrics(f);
            int i = Math.max(fm.getHeight()+4, fm.stringWidth((null == sIcon) ? "X" : sIcon)+4);
            return new Dimension(i, i);
        }
        else
        {
            return new Dimension(image.getWidth(this), image.getHeight(this));
        }
    }
   
    /**
     * Obtains the image specified from the resources.
     */
    private Image getImageFromResource(String sResource)
    {
        InputStream  is = getClass().getResourceAsStream(sResource);
        Image        img = null;
        MediaTracker tracker = new MediaTracker(this);

        if (null != is)
        {
            ByteArrayOutputStream baos = new ByteArrayOutputStream();
            int iRead;

            try
            {
                while(-1 != (iRead = is.read()))
                {
                    baos.write(iRead);
                }
                img = Toolkit.getDefaultToolkit().createImage(baos.toByteArray());
                tracker.addImage(img, 1);
                try
                {
                    tracker.waitForAll();
                }
                catch(InterruptedException ie)
                {
                    // System.out.println("MediaTracker interrupted");
                }
            }
            catch (IOException ioe)
            {
                img = null;
            }
        }

        return img;
    }
}


jazzlabel.java
Code:

/*
 * @(#)jazzlabel.java   1.00 20th January 2000
 *
 * Modification Log:
 *
 */

package jazzmsz;

import java.awt.*;

/**
 * A label control with in-build icons.
 * Displays different icons depending on the message type.
 *
 * You are free to use this code and to make modifications provided
 * this notice is retained.
 * <p>
 * If you found this useful, please add a note of acknowledgement to my guestbook,
 * or send me a mail at <a href="mailto:tanmaykm@hotmail.com">tanmaykm@hotmail.com</a>.
 * If you would like to report a bug or suggest some improvements,
 * you are most welcome. I will be happy to help you use this piece of code.
 * <p>
 *
 * @author        Tanmay K. Mohapatra
 * @version     1.00, 20th January, 2000
 */

public class jazzlabel extends Panel
{
    Label               lblMsg;
    jazzicon            icon;
    GridBagLayout       gbLayout;
    GridBagConstraints  gbConstr;
   
    public static final int     NONE = jazzicon.NONE;
    public static final int     INFORMATION = jazzicon.INFORMATION;
    public static final int     CONFIRM = jazzicon.CONFIRM;
    public static final int     HELP = jazzicon.HELP;
    public static final int     WARNING = jazzicon.WARNING;
    public static final int     EXCEPTION = jazzicon.EXCEPTION;
    public static final int     ERROR = jazzicon.ERROR;

    public jazzlabel()
    {
        icon = new jazzicon();
        lblMsg = new Label();
        gbLayout = new GridBagLayout();
        gbConstr = new GridBagConstraints();
       
        setLayout(gbLayout);
       
        gbConstr.gridheight = GridBagConstraints.REMAINDER;
        gbConstr.gridwidth = GridBagConstraints.RELATIVE;
        gbConstr.weightx = 0;
        gbConstr.weighty = 1;
        gbConstr.gridx = 0;
        gbConstr.gridy = 0;
        gbConstr.fill = GridBagConstraints.BOTH;
        gbConstr.anchor = GridBagConstraints.WEST;
       
        gbLayout.setConstraints(icon, gbConstr);
        add(icon);
       
        gbConstr.gridwidth = GridBagConstraints.REMAINDER;
        gbConstr.weightx = 1;
        gbConstr.gridx = GridBagConstraints.RELATIVE;
        gbConstr.gridy = GridBagConstraints.RELATIVE;
       
        gbLayout.setConstraints(lblMsg, gbConstr);
        add(lblMsg);
    }
   
    public void setMessage(String sMessage, int iType)
    {
        lblMsg.setText(sMessage);
        icon.setIconCharacterType(iType);
        Font fnt = getFont();
        if (null == fnt) fnt = new Font("Courier", Font.BOLD, 16);
        icon.setFont(new Font("Courier", Font.BOLD, fnt.getSize()+2));
        doLayout();
        icon.repaint();
    }
}


jazztest.java
Code:

/*
 * @(#)jazztest.java   1.00 20th January 2000
 *
 * Modification Log:
 *
 */

package jazzmsz;

import java.awt.*;
import java.awt.event.*;

/**
 * Test routine for testing and demonstrating jazzmsg classes.
 *
 * You are free to use this code and to make modifications provided
 * this notice is retained.
 * <p>
 * If you found this useful, please add a note of acknowledgement to my guestbook,
 * or send me a mail at <a href="mailto:tanmaykm@hotmail.com">tanmaykm@hotmail.com</a>.
 * If you would like to report a bug or suggest some improvements,
 * you are most welcome. I will be happy to help you use this piece of code.
 * <p>
 *
 * @author        Tanmay K. Mohapatra
 * @version     1.00, 20th January, 2000
 */

public class jazztest
{
   public static void main(String[] args)
   {
        boolean bPacked = false;
        Frame f = new Frame();
        jazzlabel jl = new jazzlabel();
        jl.setBackground(Color.decode("0xccffcc"));
        jl.setForeground(Color.decode("0x000000"));
        jl.setFont(Font.decode("Dialog-bold-12"));
        jazzdlg.setDlgGui(Color.decode("0xccffcc"), Color.decode("0x000000"), Font.decode("Dialog-bold-12"));
           
        f.add(jl);
        f.setVisible(true);
        f.pack();
        f.setLocation(100, 100);

        String [] btns = new String[2];
        btns[0] = "Ok";
        btns[1] = "Cancel";
       
        try
        {
            while(true)
            {
                jl.setMessage("Hello! You will get new messages every 2 seconds from now...", jl.NONE);
                if(!bPacked)
                {
                    f.pack();
                    bPacked = true;
                }
               
                jazzdlg.showMsgBox("",
                                   "Hello! You will get new messages every 2 seconds from now...",
                                   btns,
                                   jazzdlg.NONE,
                                   true,
                                   f);
                Thread.sleep(2000);
                jl.setMessage("This is FYI.", jl.INFORMATION);
                jazzdlg.showMsgBox("Information",
                                   "This is FYI.",
                                   btns,
                                   jazzdlg.INFORMATION,
                                   true,
                                   f);
                Thread.sleep(2000);
                jl.setMessage("Help wanted?", jl.HELP);
                jazzdlg.showMsgBox("Help",
                                   "Help wanted?",
                                   btns,
                                   jazzdlg.HELP,
                                   true,
                                   f);
                Thread.sleep(2000);
                jl.setMessage("To be or not to be...", jl.CONFIRM);
                jazzdlg.showMsgBox("Confirm",
                                   "To be or not to be...",
                                   btns,
                                   jazzdlg.CONFIRM,
                                   true,
                                   f);
                Thread.sleep(2000);
                jl.setMessage("Relax, it's a warning only.", jl.WARNING);
                jazzdlg.showMsgBox("Warning",
                                   "Relax, it's a warning only.",
                                   btns,
                                   jazzdlg.WARNING,
                                   true,
                                   f);
                Thread.sleep(2000);
                jl.setMessage("It's an exception. What did ya do?", jl.EXCEPTION);
                jazzdlg.showMsgBox("Exception",
                                   "It's an exception. What did ya do?",
                                   btns,
                                   jazzdlg.EXCEPTION,
                                   true,
                                   f);
                Thread.sleep(2000);
                jl.setMessage("Some error happened.", jl.ERROR);
                jazzdlg.showMsgBox("Error",
                                   "Some error happened.",
                                   btns,
                                   jazzdlg.ERROR,
                                   true,
                                   f);
                Thread.sleep(2000);
            }
        }
        catch(InterruptedException ie)
        {
            ie.printStackTrace();
        }
   }
}


24051 bytes more | comments? | Printer Friendly Page  Send to a Friend | Score: 0
Posted by Javaaddict on Thursday, August 17, 2006 (00:00:00) (4938 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