2017-12-22 16 views
0

이미지를 ScrollPane (패널에서)으로 설정하고 Image를 Panel의 너비로 설정하고 싶습니다.이미지를 ScrollPane으로 설정하고 너비로 크기 조절

JLabel을 사용하여 이미지를 배치하고 이미지를 더 크게 만들 수 있으므로 레이블을 ScrollPane으로 설정합니다.

이미지를 패널 너비로 확대하고 싶을 때, 높이는 같은 부분이어야합니다. 스크로 르페 이미지의 비트를 오버레이 수직 스크롤을 얻을 수 있다는

BufferedImage image; 
JLabel picLabel = new JLabel(); 
int w = pInfo.getWidth(); 

pInfo.removeAll(); 
try { 
    image = ImageIO.read(getClass().getResourceAsStream("/Matrix/ausstoepseln.jpg")); 
    picLabel = new JLabel(new ImageIcon(image));          
} catch (IOException e1) { 
    e1.printStackTrace(); 
} 

JScrollPane scrollP = new JScrollPane (picLabel, JScrollPane.VERTICAL_SCROLLBAR_AS_NEEDED, JScrollPane.HORIZONTAL_SCROLLBAR_AS_NEEDED); 
scrollP.setBorder(new TitledBorder (new EtchedBorder(), "Info")); 
pInfo.add(scrollP); 

문제는 다음과 같습니다

여기 (PINFO 내 JPanel에 이미지를 추가하는 것입니다) 내 코드입니다. 이미지 크기 조정 (ImgSclr 또는 Graphic2D)은 작동하지 않습니다. ScrollPane 역시 짧아지기 때문입니다. 또한이 다음에 레이블을 추가하고 ScrollPane의 경계를 설정하려고 시도했지만 작동하지 않았습니다. 이 일을하는 방법은

enter image description here

있습니까?

답변

0

체크 아웃 :

  1. Scrollable Panel. 이것에 의해, 스크롤 구획에의 컴퍼넌트의 추가폭을 뷰포트의 폭으로 할 수가 있습니다.

  2. Stretch Icon. 이렇게하면 사용 가능한 공간을 채우기 위해 아이콘 크기를 조정할 수 있습니다. 동일한 비율을 유지할 수 있습니다.

그래서 당신은 단지가 JScrollPane에의 JLabel을 추가 할 수 있어야하고 스크롤의 크기가 변경 될 때 이미지가 자동으로 크기가 조정되어야한다.

+0

thx, 좋은 소리, 나는 그것을 시도 할 것이다. – Cauti

+0

Unortunally 나는 그것을 작동시키지 않습니다. StretchIcon이 이미지를로드하지 않는 것 같습니다. 코드는 다음 변경 사항을 제외하고 위와 같습니다. 'picLabel.setIcon (new StretchIcon (image)); ScrollablePanel scrollP = 새로운 ScrollablePanel (새로운 MigLayout ("", "[100 %, grow]", "100 %, grow")); scrollP.add (picLabel); pInfo.add (scrollP); ' 출력이 비어 있습니다. ImageIcon을 사용할 때 이미지가 표시되지만 ScrollablePanel 때문에 실제 크기를 갖습니다. – Cauti

+0

MigLayout을 사용하지 마십시오. 간단한 BorderLayout이 가능합니다. 어쨌든 StretchIcon은 "비례 크기 조정"을 사용할 때 더 크게 크기를 조정하지 않는다는 것을 알았습니다. 그래서이 해결책은 아마도 효과가 없을 것입니다. – camickr