2015-04-09 12 views
2

Я пытаюсь вставить JLayeredPane в JPanel. Когда я вставляю JLayeredPane в фрейм, компоненты показывают, и все в порядке, но когда я вставляю JLayeredPane в JPanel, а затем вставляю JPanel в кадр. Он не отображает JLayeredPane.Добавление JLayeredPane в JPanel

Мой код:

button1.setBounds(0, 0, 100, 100); 
button2.setBounds(50, 50, 100, 100); 
layer.add(button1,1); 
layer.add(button2,0); 
panel.add(layer); 
this.add(panel); 
this.setVisible(true); 

ответ

2

я вставляю JLayeredPane к JPanel, а затем вставьте JPanel в рамке Он не отображает JLayeredPane.

В JPanel используется FlowLayout, который учитывает предпочтительный размер любого добавленного к нему компонента.

JLayeredPane не использует диспетчер компоновки и поэтому не имеет предпочтительного размера, поэтому он не отображается на панели.

компоненты показывают, и все в порядке,

Рама, которая использует BorderLayout. Местом по умолчанию является «ЦЕНТР», и центр будет определять размерную область на основе пространства, доступного в кадре.

Нет необходимости в дополнительных накладных расходах для добавления слоистой панели к панели, а затем панели к кадру.

Для получения дополнительной информации и рабочих примеров ознакомьтесь с разделом из учебника Swing по телефону How to Use Layered Panes.

+0

Спасибо, что вы, мужчина! ;) –

Смежные вопросы