прозрачные JButtons в JFrame с фоновым изображением

#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) , чтобы под ними был нарисован фон.