Solved

ScrollPane Hides JPanel

Posted on 2007-11-26
11
707 Views
Last Modified: 2013-11-23
The attached code adds a JPanel to a Container.  The JPanel has a lineborder, and can be seen when I invoke the class.  However, when I add a ScrollPane, the JPanel disappears, and I'm shown a blank GUI screen.

Please note the lines marked #1, #2 & #3 in the attached code.  When I run the code with the ArithmeticLayoutManager layout manager used, #1, the problem occurs.  When I run the code with the GridLayout layout manager used, #2, the same problem occurs.  

And, when I comment out line #3, so the ScrollPane is not created, the JPanel shows up on the GUI screen fine.

Why is the ScrollPane hiding my JPanel?
package mugs;
 
import java.awt.Color;
import java.awt.Container;
import java.awt.Dimension;
import java.awt.EventQueue;
import java.awt.GridLayout;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.WindowConstants;
import javax.swing.border.LineBorder;
import nl.marcoslot.lib.gui.layout.alm.ArithmeticLayoutManager;
 
public class Practice extends JFrame {
    
    Container panel = null;
    JPanel pnlMugs = null;
 
    public Practice() {
        init();
    }
    
    public void init() {
        panel = getContentPane();
        panel.setLayout(new ArithmeticLayoutManager()); // #1: Layout #1
        //panel.setLayout(new GridLayout());            // #2: Layout #2
        JScrollPane sp = new JScrollPane(panel);        // #3: Adding scrollpane
                
          pnlMugs = new JPanel();
        pnlMugs.setPreferredSize(new Dimension(570,750));
        LineBorder line = new LineBorder(Color.black, 1, true);
        pnlMugs.setBorder(line);
        pnlMugs.setOpaque(false);
        
        panel.add(pnlMugs,"x=10;y=10");
        
        setSize(700, 850);
        setTitle("Practice");
        setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
    }
 
    public static void main(String args[]) {
        EventQueue.invokeLater(new Runnable() {
            public void run() {
                new Practice().setVisible(true);
            }
        });
    }
    
}

Open in new window

0
Comment
Question by:LarryAndro
11 Comments
 
LVL 24

Accepted Solution

by:
sciuriware earned 450 total points
ID: 20350901
I would expect you to add a JScrollPane to the content pane:

JPanel p = ...................
JScrollPane s = new JScrollPane(p);

getContentPane().add(s);

And then .... which layout for the content pane?

;JOOP!
0
 
LVL 24

Assisted Solution

by:sciuriware
sciuriware earned 450 total points
ID: 20350907
Of course the layoutmanager for the content pane is set before adding components to it.

;JOOP!
0
 
LVL 92

Assisted Solution

by:objects
objects earned 50 total points
ID: 20353558
your panel disappears because you add it to your scroll pane (which would remove it from your gui (a component can only have one parent).
you then don't add your scroll to your gui.

try what sciuriware has suggested above
0
Free Tool: Path Explorer

An intuitive utility to help find the CSS path to UI elements on a webpage. These paths are used frequently in a variety of front-end development and QA automation tasks.

One of a set of tools we're offering as a way of saying thank you for being a part of the community.

 
LVL 1

Author Closing Comment

by:LarryAndro
ID: 31410989
The scuriware approach worked.  Thanks, both of you!

(I submitted points on this question several hours ago.  I don't know why my submission didn't "take."  :(    )
0
 
LVL 24

Expert Comment

by:sciuriware
ID: 20356089
:))
0
 
LVL 1

Author Comment

by:LarryAndro
ID: 20357574
Something is wrong with the Experts-Exchange website, or I don't understand their interface.  Yesterday, I closed call with a comment, and it didn't happen and the comment wasn't recorded.  Later, I closed call again with comment.  That time, the call was closed.  But, I don't see my comment.  Hmmm...
0
 
LVL 24

Expert Comment

by:sciuriware
ID: 20357934
Please post your original comment again.
May be you hit the wrong button,
;JOOP!
0
 
LVL 1

Author Comment

by:LarryAndro
ID: 20357992
The comment didn't add anything technically.  Both times I closed the call, adding a comment during the process saying basically that "it worked."  
0
 
LVL 1

Author Comment

by:LarryAndro
ID: 20358006
Every comment I add, when I add only comments shows up for review.  The comments added when I close the question don't show up.  Maybe this is a feature and not a bug.  In the future, I will add a comment, and as a second action close the question; two separate actions.
0
 
LVL 24

Expert Comment

by:sciuriware
ID: 20358217
I'm afraid that closing and adding comments can't be done at the same time.
Don't worry.

;JOOP!
0
 
LVL 5

Expert Comment

by:Netminder
ID: 20390433
Folks,

Experts Exchange has added a feature to the closing process that gives the Asker an opportunity to fill out a survey on the question and leave a comment; however, that comment appears only to the people receiving points and the Asker (I don't even see them at this point).

Netminder
Site Admin
0

Featured Post

Announcing the Most Valuable Experts of 2016

MVEs are more concerned with the satisfaction of those they help than with the considerable points they can earn. They are the types of people you feel privileged to call colleagues. Join us in honoring this amazing group of Experts.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Suggested Solutions

Title # Comments Views Activity
how to add new optional parameter to JSP 1 49
check java version using powershell 13 172
Export all vba modules from outlook vbaproject.otm 7 32
collection output issue 9 36
For beginner Java programmers or at least those new to the Eclipse IDE, the following tutorial will show some (four) ways in which you can import your Java projects to your Eclipse workbench. Introduction While learning Java can be done with…
Introduction This article is the last of three articles that explain why and how the Experts Exchange QA Team does test automation for our web site. This article covers our test design approach and then goes through a simple test case example, how …
This tutorial covers a step-by-step guide to install VisualVM launcher in eclipse.
This tutorial explains how to use the VisualVM tool for the Java platform application. This video goes into detail on the Threads, Sampler, and Profiler tabs.

860 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question