我已经从C#转移到java并且无法在java Jframe上渲染图像。是否有任何ImageBox组件或JFrame方法渲染图像像这样:
JPictureBox box=new JPictureBox("image_path");
JFrame fram=new JFrame();
fram.add(box);
答案 0 :(得分:1)
此代码创建JFrame
并在该框架中显示路径为f
的文件。它使用JLabel
作为评论者之一建议。
public static void display(String f) throws Exception {
JFrame jf = new JFrame();
JLabel jl = new JLabel(new ImageIcon(ImageIO.read(new File(f))));
jf.add(jl);
jf.setBounds(0, 0, 200, 200);
jf.setVisible(true);
jf.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
请注意,您可能希望更好地处理异常,从图像中设置大小(您可以询问ImageIO.read()
和.getWidth()
的{{1}}的结果),依此类推。
这是一个稍微复杂的例子,其中图像改变大小以填充其边界:
.getHeight()
注意:在阅读评论中的链接后,我必须推荐 MadProgrammer 关于该主题的详尽帖子。此答案的唯一优点是篇幅较短 - 但如果您想要much better down-scaling,ratio-preserving scaling或其他与图像相关的深度图片,请按照这些链接进行操作。