jpeg を JFrame に表示しようとしていますが、一部の画像ファイルは機能し、他の画像ファイルは機能しないことに気付きました。私は Eclipse を使用しており、すべてのイメージはプロジェクトのルート ディレクトリにあります。Debugger を実行してブレークポイントに到達すると、表示されない画像の imageheight と imagewidth が -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が初めてなので、私のコードについて何か提案があればアドバイスしてください。