2012-09-04 4 views
2
public String[] imagesArray = {Images.firstImage, Images.secondImage}; 

String imagesPath = "/testproject/images/"; 
for(int i = 0; i<imagesArray.length; i++) { 
    URL imageURL = this.getClass().getResource(imagesPath+imagesArray[i]); 
    ImageIcon orignalImageIcon = new ImageIcon(imageURL); 
    Image newImage = orignalImageIcon.getImage().getScaledInstance(100, 90, java.awt.Image.SCALE_SMOOTH); 
    ImageIcon newImageIcon = new ImageIcon(newImage); 

    JButton receiptButton = new JButton(newImageIcon); 
    receiptButton.setBorder((new EmptyBorder(0,0,0,0))); 
    toolBar.add(receiptButton); 
    add(toolBar); 
    } 

이미지는 내 디자인 레이아웃에 표시되지 않습니까?Java Swing을 사용하여 루프에서 이미지를 동적으로로드하는 것과 관련된 문제

+0

, 이미지가 고정 부재 이름을 갖는 클래스 값 "print.png" –

+0

'receiptButton.setBorder ((새 EmptyBorder은 'firstImage'(0,0,0,0))); ... ... 흠. 'setBorderPainted()'메소드를 사용해보십시오. –

답변

4

ImageIcon을 사용하여 원본 이미지를로드하는 경우의 비동기로드 특성이 문제 일 가능성이 큽니다.

그게 문제의 경우 :

  1. 을 테스트 할 수있는 쉬운 방법이있다가. 버튼에 orignalImageIcon을 추가하고 모두 나타나는지 확인합니다.
  2. 쉽게 해결할 수 있습니다. 이미지가 완전히로드 될 때까지 차단하는 방법 인 ImageIO.read(URL)을 사용하여 이미지를로드합니다. 상기 질문 "Images.firstImage"의
+0

ImagesIO.read (URL)를 사용하여 이미지를로드하는 방법에 대한 예를 들려 줄 수 있습니까? –

+2

@FaizanAhmed : 여기에는 하나의 [예] (http://stackoverflow.com/a/2658663/230513)와 다른 [예] (http://stackoverflow.com/a/6296381/230513)가 있습니다. +1, btw. – trashgod

+0

@FaizanAhmed이 답변으로 문제가 해결 되었습니까? 그렇다면 기회가 생겼을 때 대답을 [수락]하십시오 (http://meta.stackexchange.com/a/65088/155831). –

관련 문제