#swing #transparency #jframe #background-image #jbutton
#swing #прозрачность #jframe #background-image #jbutton
Вопрос:
Я создаю класс, который расширяет JFrame, и добавляю в него свое пользовательское фоновое изображение..
У меня две проблемы..
1) Я хочу, чтобы мое фоновое изображение оставалось фиксированного размера, которое при увеличении занимало весь экран. Как я могу это сделать?
2) Я хочу добавить прозрачную кнопку и панели в рамке, которые не нарушают мой фон. Есть ли какой-нибудь простой способ сделать это?
помощь будет высоко оценена … спасибо
Ответ №1:
Загрузите изображение в BufferedImage
.
Добавьте ComponentListener
, чтобы определить, когда изменяется размер рамки. Используйте размер кадра для вычисления масштабирования и вызывайте BufferedImage.getScaledImage(xScale, yScale)
для получения масштабированного изображения.
В вашем классе вы должны переопределять paintBackground()
, чтобы выполнить рисование. Просто вызовите g.drawImage(scaledImage, getWidth(), getHeight(), this), чтобы раскрасить изображение.
Любые компоненты, которые вы добавляете во фрейм, необходимо вызывать setOpaque(false)
, чтобы под ними был нарисован фон.