2013-12-01 3 views
1

Просто интересно, знает ли кто-нибудь, как сделать изображение в приложении Java с помощью настройки поворота в зависимости от размера экрана, в момент, когда я максимизирую свое приложение, изображение остается одного размера, - Какие-нибудь идеи?отзывчивое изображение в качелях

JLabel logo = new JLabel(); 
ImageIcon imgLogo = new ImageIcon("path-to-image/logo.png"); 
logo.setIcon(imgLogo); 
add(logo); 

Это код, который я до сих пор, она расположена в верхней части моего приложения, я только хочу, чтобы отрегулировать по горизонтали, когда я изменить размер окна.

Как и в веб-дизайне, вы можете просто установить изображение на процентное значение, но я не уверен, как это делается в Swing или если это возможно.

+0

Сбрасываемые изображения обычно достигаются с использованием Java-2D в 'Override'' paint (Graphics) '(AWT) или' paintComponent (Graphics) '. Я не уверен, стоит ли отмечать это для закрытия, основываясь на «должно иметь минимальное понимание проблемы», но будет ждать, чтобы увидеть, как вы на это реагируете. –

ответ

1

Возможно, вам придется перерисовывать PNG-файл каждый раз при изменении ширины.

Добавить ComponentListener в JFrame и переопределить метод componentResized. Затем вам нужно будет использовать метод Image.getScaledInstance для изменения размера изображения в зависимости от размера JFrame

+1

См. [The Perils of Image.getScaledInstance()] (https://today.java.net/pub/a/today/2007/04/03/perils-of-image-getscaledinstance.html). –

+0

и задержка с помощью таймера Swing после изменения размера – mKorbel

+0

Статья кажется довольно старой @ AndrewThompson, она по-прежнему актуальна сегодня? –

Смежные вопросы