постоянное фоновое изображение на JPanel

Я создаю свинг-интерфейс для рисования наложений поверх определенного изображения. Я нашел несколько примеров того, как рисовать изображение на JPanel, и я могу сделать это без труда. Тем не менее, я хотел бы, чтобы это изображение было полностью статичным, а динамическое рисование наложений поверх него. Имея это в виду, было бы лучше, если бы я мог установить изображение в качестве постоянного фона панели, а не каждый раз paintComponent() перерисовывать изображение. Это было бы особенно полезно, так как часто возникают ситуации, когда я хочу removeAll() графики, которые сейчас находятся на панели, и перерисовывать новые.

Итак, мой вопрос таков: есть ли способ установить постоянное фоновое изображение в JPanel или мне нужно перерисовывать изображение каждый раз, когда вызывается paintComponent()?


person ewok    schedule 06.07.2012    source источник


Ответы (2)


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

person Community    schedule 06.07.2012
comment
Это похоже на то, что я ищу. Можете ли вы привести пример? - person ewok; 06.07.2012

  • поставить Image как Icon / ImageIcon на JLabel

  • используйте этот JLabel instread из JPanel

  • JLabel не реализовал никакого LayoutManager по сравнению с JFrame(BorderLayout) или JPanel(FlowLayout)

  • вы должны определить правильное LayoutManager, что принятие PreferredSize стало его дочерним элементом (ами)

  • то доступны (почти почти) все методы как для JPanel, так как работает контейнер

person mKorbel    schedule 06.07.2012