Advertisement
If you have a new account but are having problems posting or verifying your account, please email us on hello@boards.ie for help. Thanks :)
Hello all! Please ensure that you are posting a new thread or question in the appropriate forum. The Feedback forum is overwhelmed with questions that are having to be moved elsewhere. If you need help to verify your account contact hello@boards.ie

Java - import library question

Options
  • 24-03-2009 12:58pm
    #1
    Registered Users 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 Posts: 26,579 ✭✭✭✭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 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