JFrame에 표시 할 jpeg를 얻으려고하고 있는데 일부 이미지 파일이 작동하지 않는 것을 느끼고 있습니다. 나는 이클립스를 사용하고 있으며 내 이미지는 모두 프로젝트의 루트 디렉토리에 있습니다. 디버거를 실행할 때 내 중단 점에 도달하면 표시되지 않는 이미지에 imageheight 및 imagewidth가 -1로보고됩니다. 그것은 표시하는 이미지에 올바른 값을보고합니다.ImageIcon 메서드가 모든 이미지에서 작동하지 않습니다.
처음에는 이미지 크기와 관련이 있다고 생각했지만 mspaint에서 해상도로 노는 후 이것이 사실이 아니라는 것을 깨달았습니다. 여기
내 코드는 지금까지 있습니다 :import java.awt.*;
import java.awt.image.*;
import java.awt.event.*;
import javax.swing.*;
import javax.imageio.*;
import java.io.File;
public class icon {
public static void main(String[] args) {
constructVNCForm();
}
public static void constructVNCForm() {
//Vars for GUI and essential layout code
final JFrame frame = new JFrame("This should be on top");
frame.setSize(800, 640);
Container content = frame.getContentPane();
frame.setVisible(true);
//image code here:
ImageIcon image = new ImageIcon("trial4.jpg");
//ABOVE WORKS
JLabel imageLabel = new JLabel(image);
FlowLayout flow = new FlowLayout(FlowLayout.CENTER);
//add the image to the frame
content.add(imageLabel);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
content.setLayout(flow);
}
}
당신의 어떤 ImageIcons에 문제가 있었나요? 나의 jpegs 전부는 300x300의 밑에 각종 크기이다. 나는 Java에 익숙하지 않으므로 내 코드에 대한 제안 사항이 있으면 알려주십시오.
'ImageIO'를 사용하여로드하려고하면 어떻게됩니까? 'ImageIcon'보다 더 유용한 피드백을 제공합니다. 이미지 공유 사이트에 문제가있는 이미지 중 하나를 업로드하고 바이트가 작은 경우 (<100Kb) 링크 할 수도 있습니다. –
'constructVNCForm' BTW에 마지막 문으로'frame.setVisible (true)'를 넣어야합니다. – Reimeus
@ Reimeus 답변이 정확합니다. – vels4j