Я пытаюсь наложить пользовательскую прозрачность поверх JPanel
. Я хочу, чтобы оба компонента расширялись до края многоуровневой панели. Я переопределил метод paintComponent
верхнего компонента, чтобы вообще ничего не делать, кроме случаев, когда я хочу отображать оверлей. Затем он рисует соответствующий текст в соответствующем месте.Это правильный способ наложения нескольких компонентов на одну панель?
Вот мое решение задачи компоновки:
JLayeredPane jlp = new JLayeredPane();
jlp.setLayout(new OverlayLayout(jlp) {
@Override
public void layoutContainer(Container target) {
for (Component c: target.getComponents())
c.setBounds(0, 0, target.getWidth(), target.getHeight());
}
});
Возникает вопрос - есть ли лучший способ сделать это без перекрывая layoutContainer
? Мне это кажется взломанным. Я имею в виду, действительно, я не могу поверить, что нет возможности сделать это при компоновке компонентов. Но если я не переопределяю метод, он оставляет зазоры на верхней и левой сторонах.
Я что-то упустил, или это правильный способ справиться с этими требованиями?