JLayeredPane possible in BorderLayout.CENTER ?

A

alex_us01

hi,
I tried to use JLayeredPane as follows and nothing in it shows up.
What is the problem?

thanks,
alex

--------------
import java.awt.*;
import javax.swing.*;

public class LPTry {

public static void main(String[] args) {
JFrame jf = new JFrame();
jf.getContentPane().setLayout(new BorderLayout());

JLabel tlabel = new JLabel("east");

jf.getContentPane().add(tlabel, BorderLayout.EAST);

JLayeredPane lpane = new JLayeredPane();
tlabel = new JLabel("center bottom");
lpane.add(tlabel, JLayeredPane.DEFAULT_LAYER);

jf.getContentPane().add(lpane, BorderLayout.CENTER);

jf.pack();
jf.setVisible(true);

}
}
 
A

alex_us01

as far as i understand, that is because there is no layout manager is
set for the JLayeredPane.

Solution:
either: lpane.setLayoutManager( /* some manager */ );

or: tlabel.setBounds(0,0,100,10);

and here is the code that shows overlapping components:
============================================

import java.awt.*;
import javax.swing.*;

public class LPTry {

public static void main(String[] args) {
JFrame jf = new JFrame();
jf.getContentPane().setLayout(new BorderLayout());

JLabel tlabel = new JLabel("east");

jf.getContentPane().add(tlabel, BorderLayout.EAST);

JLayeredPane lpane = new JLayeredPane();
tlabel = new JLabel("center bottom");
tlabel.setBounds(0,0,100,10);
lpane.setPreferredSize(new Dimension(200,100));
lpane.add(tlabel, JLayeredPane.DEFAULT_LAYER);
tlabel = new JLabel("center top");
tlabel.setBounds(0,0,100,10);
tlabel.setForeground(Color.RED);
tlabel.setOpaque(false);
lpane.add(tlabel, JLayeredPane.PALETTE_LAYER);

jf.getContentPane().add(lpane, BorderLayout.CENTER);

jf.pack();
jf.setVisible(true);

}
}
 
V

Vova Reznik

import java.awt.Dimension;

import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;

public class LPTry {

public static void main(String[] args) {
JFrame jf = new JFrame();

JLabel lblN = new JLabel("North", JLabel.CENTER);
JLabel lblC = new JLabel("Center", JLabel.CENTER);
JLabel lblS = new JLabel("South", JLabel.CENTER);

JPanel lblPanel = new JPanel(null);

Dimension size = new Dimension(50, 60);
lblPanel.setSize(size);
lblPanel.setPreferredSize(size);
lblPanel.add(lblN);
lblPanel.add(lblC);
lblPanel.add(lblS);

lblN.setBounds(0, 0, 40, 15);
lblC.setBounds(0, 20, 40, 15);
lblS.setBounds(0, 40, 40, 15);

JPanel pnlGlass = new JPanel();
pnlGlass.setOpaque(false);
pnlGlass.setSize(size);
pnlGlass.setPreferredSize(size);
pnlGlass.setLocation(0, 0);
pnlGlass.add(new JLabel("-_-_-_"));

lblPanel.add(pnlGlass);

jf.getContentPane().add(lblPanel);


jf.pack();
jf.setVisible(true);

}
}
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

No members online now.

Forum statistics

Threads
473,769
Messages
2,569,580
Members
45,054
Latest member
TrimKetoBoost

Latest Threads

Top