Bezdepbonusu7Программирование: статьи и ответы

Вопрос

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

Автор вопроса: ewokОтветов: 2

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

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

javabackground-imageswingjpanel

Ответы

Ответ 1 · рейтинг 1 · Community

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

Ответ 2 · рейтинг 2 · mKorbel

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

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

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

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

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

Перевод вопроса и ответов сообщества Stack Overflow, лицензия CC BY-SA. Оригинал на Stack Overflow.

Похожие материалы