我已经从C#转到Java,但无法在Java Jframe 上渲染图像。是否有ImageBox组件或JFrame方法能够呈现以下所示的图像:
JPictureBox box=new JPictureBox("image_path");
JFrame fram=new JFrame();
fram.add(box);
我已经从C#转到Java,但无法在Java Jframe 上渲染图像。是否有ImageBox组件或JFrame方法能够呈现以下所示的图像:
JPictureBox box=new JPictureBox("image_path");
JFrame fram=new JFrame();
fram.add(box);
这段代码创建了一个 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()
和.getHeight()
),等等。 public static void display(final String f) throws Exception {
JFrame jf = new JFrame();
JPanel jp = new JPanel() {
private BufferedImage bi = ImageIO.read(new File(f));
public void paint(Graphics g) {
Graphics2D g2 = (Graphics2D)g;
RenderingHints rh = new RenderingHints(
RenderingHints.KEY_INTERPOLATION,
RenderingHints.VALUE_INTERPOLATION_BICUBIC);
g2.setRenderingHints(rh);
int w = getWidth();
int h = getHeight();
g.drawImage(bi, 0, 0, w, h, null);
}
};
jf.add(jp);
jf.setBounds(0, 0, 400, 200);
jf.setVisible(true);
jf.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
JLabel
。使用它的 JLabel.setIcon(...) 方法。希望这个小 例子 或者这个详细的 答案 能对这个主题有所帮助 :-) - nIcE cOw