2016-10-08 4 views
0

Я знаю, как рисовать изображение с помощью java (с методом paintComponent), но у меня есть проблема: Когда я изменяю размер рамки, изображение остается одного размера, но я хочу, чтобы он увеличивал свой размер, когда я увеличиваю размер рамки и уменьшаю ее размер, когда уменьшаю размер рамки.Нарисуйте изображение с относительным размером до панели

Мой код:

@Override 
public void paintComponent(Graphics graphics) { 
    Graphics2D g = (Graphics2D) graphics; 
    g.drawImage(myImage, x, y, myWidth, myHeight, null); 

} 

Я уверен, что мне нужно использовать метод GetWidth и GetHeight класса JPanel, но я не знаю математику, что мне нужно делать.

Я надеюсь, что кто-то может мне помочь!

PS: Извините за мой плохой английский ...

+0

Вам нужно выбрать, насколько вы хотите, чтобы изображение было в относительном выражении (например, 80% от ширины рамки), затем [масштабировать его] (http://stackoverflow.com/questions/1729887/little-math-help -для-изображений изменение размера необходимого). – BackSlash

+0

переопределить getPreferredSize для JPanel, примеры примеров здесь и в форме SSCCE/MCVE – mKorbel

+1

'Я уверен, что мне нужно использовать метод getWidth и getHeight класса JPanel' - Исправить, так что сделайте это. Просто измените свой код, чтобы использовать этот метод. Также вы должны использовать «this» вместо «null» для последнего параметра метода drawImage (...). – camickr

ответ

0

Вместо того, чтобы писать этот код в paintComponents, вы могли бы поставить в переопределен метод Нарисовать JFrame в.

Таким образом, когда вы изменяете размер окна, вызывается метод paint и изображение изменяется.