2012-06-24 6 views
-1

스크롤 가능한 창에 일부 이미지를로드하려고합니다. 그러나 어떤 이유로 그것은 나타나지 않습니다. 여기에 이미지를 추가하는 코드가 있습니다. fileCHooser 이상 사용JScrollPane에 스윙 구성 요소가 나타나지 않음

private JFileChooser fileChooser = new JFileChooser(){ 
     @Override 
     public void approveSelection(){ 
      File files[] = fileChooser.getSelectedFiles(); 
      JPanel panel = new JPanel(new GridLayout(files.length, 1)); 
      for(int lop=0; lop< files.length; lop++){ 

       BufferedImage image = null; 
       try {     
        image = ImageIO.read(files[lop]); 
       } catch (IOException ex) {} 
       BufferedImage img = new BufferedImage(100, 100, 1); 
       Graphics2D g = img.createGraphics(); 
       g.drawImage(image, 0, 0, 100, 100, null); 
       g.dispose(); 

       ImageIcon icon = new ImageIcon(img); 
       JLabel lable = new JLabel(icon); 
       panel.add(lable);  

      } 
      jScrollPane1.getViewport().add(panel);  
      super.approveSelection(); 
     } 
    }; 

, 나는 수직 스크롤에로드 일부 이미지를 선택, 어떻게 든 스크롤 수평 스크롤 길이의 변화를 보여 주지만 스크롤에는 내용이 없습니다. 다음 스크린 샷을 확인하십시오. 도형의 제목 아래 :

jScrollPane1.getViewport().add(new JFrame().add(panel)); 

이유 : 당신은 문제는이 코드 라인이다 확장 스크롤

Screenshot

안부와 Aqif 하미드

+1

* "스윙 구성 요소가 JScrollPane에 표시되지"* 이런 :에 빈 catch 블록을 변환. 아마 마지막 날에도 두 번. 나중에 검색하십시오. –

답변

3

을 빈 컨테이너를 볼 수 있습니다 JFrame을 만드시겠습니까? 이 같은 스크롤의보기를

jScrollPane = new JScrollPane(panel); 

또는 설정 :

당신은이 같은 JScrollPane의를 만들어야합니다

jScrollpane.setViewportView(panel); 

또한, 당신은 단지 panel.add(lable)를 사용해야합니다. GridLayout은 라벨을 적절한 위치에 놓습니다. 그리고 예외를 무시해서는 안됩니다. 내가 그 이제까지 ..이 시간에 일어난 생각하지 않는다

try {     
    image = ImageIO.read(files[lop]); 
} 
catch (IOException ex) { 
    throw new RuntimeException(ex); 
} 
+0

죄송합니다. 내 게시물을 으로 편집했습니다. jScrollpane.setViewportView (panel); 그런 식으로 작동하지 않습니다. 나는 그저 그런 식으로 해결책을 시도하고 있었다. Thnxs –

+2

내 편집을 참조하십시오. 작동하지 않으면 SSCCE를 게시하십시오. –

+0

친절하게 지금 확인하십시오 –

관련 문제