Я серьезно перепробовал все, что мог придумать из того, что я собрал о том, как использовать JLayeredPane
, и ничего из того, что я делаю, похоже, не работает. Сначала я создаю ImageIcons
, затем добавляю ImageIcons
к JLabels
, затем добавляю JLabel
к JLayeredPane
, а затем добавляю JLayeredPane
к JPanel
. Я пытался использовать методы setSize
, setBounds
, а также любой другой метод, который я мог найти, чтобы изменить размер моего JLabels
, прежде чем добавлять их в JLayeredPane
, и я никогда не могу отобразить свои изображения, не говоря уже о том, чтобы быть наложенными друг на друга. Как мне это сделать??
Вот мой код:
public Class FaceLayout extends JFrame
{
public FaceLayout()
{
ImageIcon face = new ImageIcon(getClass().getResource("Imported Image");
ImageIcon eyes = new ImageIcon(getClass().getResource("Imported Image");
ImageIcon nose = new ImageIcon(getClass().getResource("Imported Image");
ImageIcon mouth = new ImageIcon(getClass().getResource("Imported Image");
JLabel fLab = new JLabel(face);
fLab1.setBounds(25, 25, 50, 50);
JLabel eLab = new JLabel(eyes);
eLab1.setBounds(25, 25, 50, 50);
JLabel nLab = new JLabel(nose);
nLab1.setBounds(25, 25, 50, 50);
JLabel mLab = new JLabel(mouth);
mLab1.setBounds(25, 25, 50, 50);
JCheckBox eBox = new JCheckBox("Eyes", false);
JCheckBox nBox = new JCheckBox("Nose", false);
JCheckBox mBox = new JCheckBox("Mouth", false);
JButton submit = new JButton("Submit");
JPanel leftPanel = new JPanel(new GridLayout(4, 1));
leftPanel.add(eBox);
leftPanel.add(nBox);
leftPanel.add(mBox);
leftPanel.add(submit);
JLayeredPane layers = new JLayeredPane();
// Here I have tried the setLayer method and just adding them to the layeredPane itself. Right now I have it as:
layers.add(fLab, new Integer(1));
layers.add(eLab, new Integer(2));
layers.add(nLab, new Integer(3));
layers.add(mLab, new Integer(4));
JPanel rightPanel = new JPanel();
rightPanel.add(layers);
JSplitPane pane = new JSplitPane(JSplitPane.HORIZONTAL_SPLIT, leftPanel, rightPanel);
pane.setDividerLocation(150);
Dimension lSize = new Dimension(100, 50);
Dimension rSize = new Dimension(100, 400);
leftPanel.setMinimumSize(lSize);
rightPanel.setMinimumSize(rSize);
add(pane);
}
}
leftPanel
отлично отображается со всеми checkboxes
, но все, что я когда-либо видел на rightPanel
, это пустой белый фон и ничего больше. Что я здесь делаю не так??