java io读取图片到jframe_java-使用JFileChooser将图像加载到JFrame中

我正在尝试编写将使用JFileChooser选择的图像显示到另一个JFrame中的代码.我在下面尝试了以下代码,但仅收到以下错误.

Exception in thread "main" java.lang.NullPointerException

at javax.swing.ImageIcon.(ImageIcon.java:228)

at power.(fCGUI.java:53)

at fCGUI.main(fCGUI.java:11)

这是代码:

import javax.imageio.ImageIO;

import javax.swing.*;

import java.awt.*;

import java.awt.event.*;

import java.awt.image.BufferedImage;

import java.io.File;

import java.io.IOException;

public class fCGUI

{

public static void main(String []args)

{

power p=new power();

p.setVisible(true);

}

}

class power extends JFrame

{

JFileChooser chooser;

BufferedImage img;

JButton button,button2;

JFrame comp;

String filename;

File file ;

public power()

{

setSize(450,450);

panel.setLayout(new BorderLayout());

JPanel panel=new JPanel();

getContentPane().add(panel);

button =new JButton("press");

panel.add(button,BorderLayout.NORTH);

chooser = new JFileChooser();

ActionListener action=new ActionListener()

{

public void actionPerformed(ActionEvent e)

{

if (e.getSource()==button)

{

chooser.showOpenDialog(null);

file = chooser.getSelectedFile();

try

{

img=ImageIO.read(file);

}

catch(IOException e1) {}

}

if (e.getSource()==button2)

{

comp.setVisible(true);

}

}

};

ImageIcon icon=new ImageIcon(img);

JLabel label=new JLabel(icon);

JPanel secpanel=new JPanel();

comp=new JFrame();

comp.setSize(650,500);

comp.setLayout(new BorderLayout());

comp.setTitle("View Report");

JRootPane compPane=comp.getRootPane();

Container contePane=compPane.getContentPane();

contePane.add(secpanel);

secpanel.add(label,BorderLayout.CENTER);

button2=new JButton("access");

button2.addActionListener(action);

button.addActionListener(action);

panel.add(button2,BorderLayout.SOUTH);

}

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值