Advertisement
Help Keep Boards Alive. Support us by going ad free today. See here: https://subscriptions.boards.ie/.
If we do not hit our goal we will be forced to close the site.

Current status: https://keepboardsalive.com/

Annual subs are best for most impact. If you are still undecided on going Ad Free - you can also donate using the Paypal Donate option. All contribution helps. Thank you.
https://www.boards.ie/group/1878-subscribers-forum

Private Group for paid up members of Boards.ie. Join the club.

Java - import library question

  • 24-03-2009 12:58PM
    #1
    Registered Users, Registered Users 2 Posts: 819 ✭✭✭


    Hi,

    I'm trying to import a Java open source library that provides a FormLayout that I want to use to design an application I have to create but I am having problems getting it to actually work.

    The library is called JGoodies Forms and is available at the following link: http://www.jgoodies.com/downloads/libraries.html

    Unfortunately the tutorials available only talk about using the various libraries and not the basic steps of actually setting them up which I am not aware of. The library provides all the .java files needed inside various sub folders in a 'com' folder. It also provides a .jar file which contains all the .class files for the various classes.

    What do I need to do with the .java files or the .jar file in order to use all these classes?

    I have searched online to see how other libraries are imported and have found some information but what I have tried hasn't worked. One thing I saw suggested adding the .jar file to my classpath but this has not worked.

    Another suggestion was to place the 'com' folders which contains all the .java files into the C:\Program Files\Java\jre6\lib\ext folder but this hasn't worked either.



    An example of what is happening is as follows:

    I try to run a sample class called AlignmentExample.java
    /*
     * Copyright (c) 2002-2008 JGoodies Karsten Lentzsch. All Rights Reserved.
     *
     * Redistribution and use in source and binary forms, with or without
     * modification, are permitted provided that the following conditions are met:
     *
     *  o Redistributions of source code must retain the above copyright notice,
     *    this list of conditions and the following disclaimer.
     *
     *  o Redistributions in binary form must reproduce the above copyright notice,
     *    this list of conditions and the following disclaimer in the documentation
     *    and/or other materials provided with the distribution.
     *
     *  o Neither the name of JGoodies Karsten Lentzsch nor the names of
     *    its contributors may be used to endorse or promote products derived
     *    from this software without specific prior written permission.
     *
     * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
     * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
     * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
     * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
     * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
     * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
     * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
     * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
     * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE
     * OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
     * EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
     */
    
    package com.jgoodies.forms.tutorial.basics;
    
    import javax.swing.*;
    
    import com.jgoodies.forms.factories.Borders;
    import com.jgoodies.forms.layout.CellConstraints;
    import com.jgoodies.forms.layout.FormLayout;
    import com.jgoodies.forms.tutorial.util.TutorialApplication;
    
    /**
     * Demonstrates the different FormLayout alignments.
     *
     * @author	Karsten Lentzsch
     * @version $Revision: 1.19 $
     */
    public final class AlignmentExample extends TutorialApplication {
    
    
        // Launching **************************************************************
    
        public static void main(String[] args) {
            TutorialApplication.launch(AlignmentExample.class, args);
        }
    
    
        protected void startup(String[] args) {
            JFrame frame = createFrame("Forms Tutorial :: Alignments");
            frame.getContentPane().add(buildPanel());
            packAndShowOnScreenCenter(frame);
        }
    
    
        // Building ***************************************************************
    
        public JComponent buildPanel() {
            JTabbedPane tabbedPane = new JTabbedPane();
            tabbedPane.putClientProperty("jgoodies.noContentBorder", Boolean.TRUE);
    
            tabbedPane.add("Horizontal", buildHorizontalButtons());
            tabbedPane.add("Vertical",   buildVerticalButtons());
            return tabbedPane;
        }
    
    
        private JComponent buildHorizontalButtons() {
            FormLayout layout = new FormLayout(
                "left:pref, 15px, center:pref, 15px, right:pref, 15px, fill:pref, 15px, pref",
                "pref, 12px, pref, 4px, pref, 4px, pref, 4px, pref, 4px, pref");
    
            // Create a panel that uses the layout.
            JPanel panel = new JPanel(layout);
    
            // Set a default border.
            panel.setBorder(Borders.DIALOG_BORDER);
    
            // Create a reusable CellConstraints instance.
            CellConstraints cc = new CellConstraints();
    
            // Add components to the panel.
            panel.add(new JLabel("Left"),     cc.xy(1,  1));
            panel.add(new JButton("Name"),    cc.xy(1,  3));
            panel.add(new JButton("Phone"),   cc.xy(1,  5));
            panel.add(new JButton("Fax"),     cc.xy(1,  7));
            panel.add(new JButton("Email"),   cc.xy(1,  9));
            panel.add(new JButton("Address"), cc.xy(1, 11));
    
            panel.add(new JLabel("Center"),   cc.xy(3,  1));
            panel.add(new JButton("Name"),    cc.xy(3,  3));
            panel.add(new JButton("Phone"),   cc.xy(3,  5));
            panel.add(new JButton("Fax"),     cc.xy(3,  7));
            panel.add(new JButton("Email"),   cc.xy(3,  9));
            panel.add(new JButton("Address"), cc.xy(3, 11));
    
            panel.add(new JLabel("Right"),    cc.xy(5,  1));
            panel.add(new JButton("Name"),    cc.xy(5,  3));
            panel.add(new JButton("Phone"),   cc.xy(5,  5));
            panel.add(new JButton("Fax"),     cc.xy(5,  7));
            panel.add(new JButton("Email"),   cc.xy(5,  9));
            panel.add(new JButton("Address"), cc.xy(5, 11));
    
            panel.add(new JLabel("Fill"),     cc.xy(7,  1, "center, center"));
            panel.add(new JButton("Name"),    cc.xy(7,  3));
            panel.add(new JButton("Phone"),   cc.xy(7,  5));
            panel.add(new JButton("Fax"),     cc.xy(7,  7));
            panel.add(new JButton("Email"),   cc.xy(7,  9));
            panel.add(new JButton("Address"), cc.xy(7, 11));
    
            panel.add(new JLabel("Default"),  cc.xy(9,  1, "center, center"));
            panel.add(new JButton("Name"),    cc.xy(9,  3));
            panel.add(new JButton("Phone"),   cc.xy(9,  5));
            panel.add(new JButton("Fax"),     cc.xy(9,  7));
            panel.add(new JButton("Email"),   cc.xy(9,  9));
            panel.add(new JButton("Address"), cc.xy(9, 11));
    
            return panel;
        }
    
    
        private JComponent buildVerticalButtons() {
            FormLayout layout = new FormLayout(
                "pref, 8dlu, pref, 4dlu, pref",
                "top:pref, 9dlu, center:pref, 9dlu, bottom:pref, 9dlu, fill:pref, 9dlu, pref");
    
            // Create a panel that uses the layout.
            JPanel panel = new JPanel(layout);
    
            // Set a default border.
            panel.setBorder(Borders.DIALOG_BORDER);
    
            // Create a reusable CellConstraints instance.
            CellConstraints cc = new CellConstraints();
    
            // Add components to the panel.
            panel.add(new JLabel("Top"),      cc.xy(1,  1));
            panel.add(createSmallButton(),    cc.xy(3,  1));
            panel.add(createMediumButton(),   cc.xy(5,  1));
    
            panel.add(new JLabel("Center"),   cc.xy(1,  3));
            panel.add(createSmallButton(),    cc.xy(3,  3));
            panel.add(createMediumButton(),   cc.xy(5,  3));
    
            panel.add(new JLabel("Bottom"),   cc.xy(1,  5));
            panel.add(createSmallButton(),    cc.xy(3,  5));
            panel.add(createMediumButton(),   cc.xy(5,  5));
    
            panel.add(new JLabel("Fill"),     cc.xy(1,  7));
            panel.add(createSmallButton(),    cc.xy(3,  7));
            panel.add(createMediumButton(),   cc.xy(5,  7));
    
            panel.add(new JLabel("Default"),  cc.xy(1,  9));
            panel.add(createSmallButton(),    cc.xy(3,  9));
            panel.add(createMediumButton(),   cc.xy(5,  9));
    
            return panel;
        }
    
        private JButton createSmallButton() {
            return new JButton("<html>One</html>");
        }
    
        private JButton createMediumButton() {
            return new JButton("<html>One<br>Two</html>");
        }
    
    
    }
    

    This gives the following errors when I try to compile/run it:
    C:\Documents and Settings\Conor.MINE\Desktop\AlignmentExample.java:35: package com.jgoodies.forms.factories does not exist
    import com.jgoodies.forms.factories.Borders;
                                       ^
    C:\Documents and Settings\Conor.MINE\Desktop\AlignmentExample.java:36: package com.jgoodies.forms.layout does not exist
    import com.jgoodies.forms.layout.CellConstraints;
                                    ^
    C:\Documents and Settings\Conor.MINE\Desktop\AlignmentExample.java:37: package com.jgoodies.forms.layout does not exist
    import com.jgoodies.forms.layout.FormLayout;
                                    ^
    C:\Documents and Settings\Conor.MINE\Desktop\AlignmentExample.java:76: cannot find symbol
    symbol  : class FormLayout
    location: class com.jgoodies.forms.tutorial.basics.AlignmentExample
            FormLayout layout = new FormLayout(
            ^
    C:\Documents and Settings\Conor.MINE\Desktop\AlignmentExample.java:76: cannot find symbol
    symbol  : class FormLayout
    location: class com.jgoodies.forms.tutorial.basics.AlignmentExample
            FormLayout layout = new FormLayout(
                                    ^
    C:\Documents and Settings\Conor.MINE\Desktop\AlignmentExample.java:84: cannot find symbol
    symbol  : variable Borders
    location: class com.jgoodies.forms.tutorial.basics.AlignmentExample
            panel.setBorder(Borders.DIALOG_BORDER);
                            ^
    C:\Documents and Settings\Conor.MINE\Desktop\AlignmentExample.java:87: cannot find symbol
    symbol  : class CellConstraints
    location: class com.jgoodies.forms.tutorial.basics.AlignmentExample
            CellConstraints cc = new CellConstraints();
            ^
    C:\Documents and Settings\Conor.MINE\Desktop\AlignmentExample.java:87: cannot find symbol
    symbol  : class CellConstraints
    location: class com.jgoodies.forms.tutorial.basics.AlignmentExample
            CellConstraints cc = new CellConstraints();
                                     ^
    C:\Documents and Settings\Conor.MINE\Desktop\AlignmentExample.java:130: cannot find symbol
    symbol  : class FormLayout
    location: class com.jgoodies.forms.tutorial.basics.AlignmentExample
            FormLayout layout = new FormLayout(
            ^
    C:\Documents and Settings\Conor.MINE\Desktop\AlignmentExample.java:130: cannot find symbol
    symbol  : class FormLayout
    location: class com.jgoodies.forms.tutorial.basics.AlignmentExample
            FormLayout layout = new FormLayout(
                                    ^
    C:\Documents and Settings\Conor.MINE\Desktop\AlignmentExample.java:138: cannot find symbol
    symbol  : variable Borders
    location: class com.jgoodies.forms.tutorial.basics.AlignmentExample
            panel.setBorder(Borders.DIALOG_BORDER);
                            ^
    C:\Documents and Settings\Conor.MINE\Desktop\AlignmentExample.java:141: cannot find symbol
    symbol  : class CellConstraints
    location: class com.jgoodies.forms.tutorial.basics.AlignmentExample
            CellConstraints cc = new CellConstraints();
            ^
    C:\Documents and Settings\Conor.MINE\Desktop\AlignmentExample.java:141: cannot find symbol
    symbol  : class CellConstraints
    location: class com.jgoodies.forms.tutorial.basics.AlignmentExample
            CellConstraints cc = new CellConstraints();
                                     ^
    13 errors
    
    Process completed.
    

    It seems to me as if the libraries are not being recognised. Can anyone advise? I haven't used Java too much and don't know too much about using libraries etc so it is quite possible there is something very stupid I am missing!

    Thanks in advance


Comments

  • Registered Users, Registered Users 2 Posts: 26,449 ✭✭✭✭Creamy Goodness


    ok,

    when you do a line like this in java

    import com.jgoodies.forms.factories.Borders;

    what you are basically saying is that in the directory that contains AlignmentSample.java has the following directory structure.

    |- AlignmentSample.java
    |
    |-com
    |
    jgoodies
    |
    forms
    |
    factories
    |
    Borders

    where com, jgoodies, forms and factories are directories of their own and factories contains a Border.java files.

    the same goes for all the other imports.

    the package line

    package com.jgoodies.forms.tutorial.basics;

    states that the AlignmentSample.java must reside in a folder structure like so.

    |-com
    |--jgoodies
    |
    forms
    |
    tutorials
    |
    basics


  • Registered Users, Registered Users 2 Posts: 378 ✭✭sicruise


    Create a new project in an ide and add the jar to your libaries.

    Create a new package called com.jgoodies.forms.tutorial.basics

    Create a file in this package called AlignmentExample.java

    Copy the contents below into it...

    Then build it, if it builds do a clean and shutdown your ide.

    Have a look at the folder structure / build script (especially where the classpath is set) / jar location ... it'll be a good start to understanding.


Advertisement