本文主要是介绍Java swing 无法给JLabel添加BMP格式的图片,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
Java swing 无法给JLabel添加BMP格式的图片(JPG、PNG却可以)
原本添加JPG、PNG等格式的代码
JLabel currImgLabel = new JLabel();currImgLabel.setBounds(270, 10, 500, 500);add(label);JFileChooser chooser = new JFileChooser();chooser.setCurrentDirectory(new File("."));JMenuBar menubar = new JMenuBar();setJMenuBar(menubar);JMenu menu = new JMenu("File");menubar.add(menu);JMenuItem openItem = new JMenuItem("Open");menu.add(openItem);openItem.addActionListener(new ActionListener() { @Overridepublic void actionPerformed(ActionEvent arg0) {// TODO Auto-generated method stubint result = chooser.showOpenDialog(null);if(result == JFileChooser.APPROVE_OPTION){//显示图片String path = chooser.getSelectedFile().getPath();testImgLabel.setIcon(new ImageIcon(path));});
如果是BMP格式的图片,就不能正常显示
解决方法
JLabel currImgLabel = new JLabel();currImgLabel.setBounds(270, 10, 500, 500);add(label);JFileChooser chooser = new JFileChooser();chooser.setCurrentDirectory(new File("."));JMenuBar menubar = new JMenuBar();setJMenuBar(menubar);JMenu menu = new JMenu("File");menubar.add(menu);JMenuItem openItem = new JMenuItem("Open");menu.add(openItem);openItem.addActionListener(new ActionListener() { @Overridepublic void actionPerformed(ActionEvent arg0) {// TODO Auto-generated method stubint result = chooser.showOpenDialog(null);if(result == JFileChooser.APPROVE_OPTION){//显示图片String path = chooser.getSelectedFile().getPath();try {//为了显示BMP格式图片而加的内容File file = new File(path);Image image = ImageIO.read(file);currImgLabel.setIcon(new ImageIcon(image));} catch (IOException e1) {// TODO 自动生成的 catch 块e1.printStackTrace();}});
这篇关于Java swing 无法给JLabel添加BMP格式的图片的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!