我试图让 jpeg 显示在 JFrame 上,我注意到有些图像文件可以工作,而另一些则不能。我正在使用 Eclipse,我所有的图像都在项目的根目录中。当我运行调试器并且它到达我的断点时,它会在不会显示的图像上将图像高度和图像宽度报告为 -1。它会在显示的图像上报告正确的值。
起初我认为这与图像大小有关,但在使用 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 有任何问题吗?我所有的 jpeg 都是 300x300 以下的各种尺寸。我是 Java 新手,所以如果您对我的代码有任何建议,请提出建议。