2012-07-04 1 views
0

스윙을 사용하여 URL Java에서 이미지를 표시하고 싶습니다. 이 코드를 사용합니다 :ImageIO. 대부분의 시간 동안 작동하지 않습니까?

BufferedImage pic = ImageIO.read(new URL("http://www.swpc.noaa.gov/SWN/g_curr.gif")); 
JLabel label1 = new JLabel(new ImageIcon(pic)); 
label1.setBounds(200,28,32,12); 
jp.add(label1); //jp is a JPanel. 

시간의 약 1/4. 다른 시간에는 아무 것도 표시되지 않으며 예외도 발생하지 않습니다.

+1

'ImageIO.read (...)'의 잘못입니까? 나는 이것이 사실이라고 의심한다. 아마도 그것은 라벨에 설정 범위와 같은 더 초보적인 것입니까? –

+0

문제의 서버가 제대로 작동하고 있습니까,'ImageIO'를 스탠드에 넣지 말고 서버에 질문하십시오. 올바르게 작동합니까? –

+1

내 컴퓨터가 작동하는 경우이 [예제] (http://stackoverflow.com/questions/11113159/background-image-in-a-nested-jpanel/11113479#11113479)를 살펴보십시오. 서버, 당신은 반드시 이미지를 볼 수 있습니다. –

답변

0

JFrame을 만든 다음 JPanel을 추가하는 것이 좋습니다.

여기

내가 뭘하려 ...

//necessary imports over here 

    class Test extends javax.swing.JFrame 
    { 
    public static void main(String args[]) throws MalformedURLException, IOException 
    { 

    Test inst = new Test(); 
    inst.setLocationRelativeTo(null); 
    inst.setVisible(true); 
    JPanel jp=new JPanel(); 
    BufferedImage pic = ImageIO.read(new URL("http://www.swpc.noaa.gov/SWN/g_curr.gif")); 
    JLabel label1 = new JLabel(new ImageIcon(pic)); 

    jp.add(label1); 
    jp.setVisible(true); 
    inst.add(jp); 
    inst.getContentPane().setLayout(new FlowLayout()); 
    inst.setDefaultCloseOperation(WindowConstants.DISPOSE_ON_CLOSE); 
    inst.pack(); 
    inst.setSize(300,300); 

    } 
} 

이 코드는 효율적 아니지만이어야 당신에게 출력을 제공합니다.

희망 하시겠습니까?

+4

왜 당신은'setBounds (...)'를 너무 부르 느냐? 조언을 해보려면 레이아웃 관리자의 원래 사용법을 보여줘야합니다. –

+0

예 동의합니다. 나는 그 코드를 생략해야했다. 그것을 지적 주셔서 감사합니다. 앞으로 답변을 올리면서 이러한 것을 염두에 두겠습니다. –

관련 문제