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() {
@Override
public void actionPerformed(ActionEvent arg0) {
// TODO Auto-generated method stub
int 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() {
@Override
public void actionPerformed(ActionEvent arg0) {
// TODO Auto-generated method stub
int 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();
}
});
本文探讨了在JavaSwing中使用JLabel组件加载BMP格式图片时遇到的问题,并提供了解决方案。通过使用ImageIO读取BMP图片,再将其转换为ImageIcon,成功地解决了BMP格式图片无法显示的问题。
4451

被折叠的 条评论
为什么被折叠?



