图片查看器

Posted sunzhongyu008

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了图片查看器相关的知识,希望对你有一定的参考价值。

1.下面一段代码,不知道是怎么打开图片文件的。

/**
 * @author Steven
 * Func: 查看照片
 * Created : 2019-8-17
 */

import java.awt.EventQueue;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.KeyEvent;
import java.io.File;
import javax.swing.ImageIcon;
import javax.swing.JDialog;
import javax.swing.JFileChooser;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JMenu;
import javax.swing.JMenuBar;
import javax.swing.JMenuItem;
import javax.swing.KeyStroke;
import javax.swing.SwingConstants;

public class ImageViewerDemo 
    public static void main(String[] args) 
        EventQueue.invokeLater(()->
            JFrame frame = new ImageViewerFrame();
            frame.setVisible(true);
        );
    


class ImageViewerFrame extends JFrame
    private static final long serialVersionUID = 1L;
    private JLabel label;
    private JFileChooser chooser;
    private static final int DEFAULT_WIDTH = 800;
    private static final int DEFAULT_HEIGHT = 600;
    
    //无参构造
    public ImageViewerFrame() 
        setTitle("图片查看器");
        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        
        //定义标签
        setBounds(300,100,DEFAULT_WIDTH, DEFAULT_HEIGHT);
        label = new JLabel();
        add(label);
        
        //定义文件选择器
        chooser = new JFileChooser();
        chooser.setCurrentDirectory(new File("."));
        
        //定义菜单栏
        JMenuBar menuBar = new JMenuBar();
        setJMenuBar(menuBar);
        
        //定义"文件"菜单
        JMenu fileMenu = new JMenu("文件(F)");    
        fileMenu.setMnemonic(KeyEvent.VK_F);    //文件快捷键:Alt + F
        menuBar.add(fileMenu);
        
        //定义"帮助"菜单
        JMenu helpMenu = new JMenu("帮助(H)");
        fileMenu.setMnemonic(KeyEvent.VK_H);    //帮助快捷键: Alt + H
        menuBar.add(helpMenu);
        
        //定义"帮助"菜单项
        JMenuItem aboutItem = new JMenuItem("关于(A)");
        aboutItem.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_A, KeyEvent.ALT_DOWN_MASK));    //关于加速键:Alt + A
        helpMenu.add(aboutItem);
        aboutItem.addActionListener(new ActionListener() 
            @Override
            public void actionPerformed(ActionEvent e) 
                JDialog aboutDialog = new JDialog();
                aboutDialog.setTitle("关于" + (new ImageViewerFrame()).getTitle());
                aboutDialog.setResizable(false);
                aboutDialog.setBounds(600, 300, 200, 100);
                
                JLabel aboutContentLabel = new JLabel();
                aboutContentLabel.setText("<html><body>图片查看器<br>作者:Steven<br>邮箱:99388239@qq.com</body></html>");
                aboutContentLabel.setHorizontalAlignment(SwingConstants.CENTER);
                
                aboutDialog.add(aboutContentLabel);
                aboutDialog.setVisible(true);
            
        );

        //定义"打开"菜单项
        JMenuItem openItem = new JMenuItem("打开(O)");
        openItem.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_O, KeyEvent.ALT_DOWN_MASK));//打开加速键:Alt + O
        fileMenu.add(openItem);
        openItem.addActionListener(event -> 
            int result = chooser.showOpenDialog(null);
            if(result == JFileChooser.APPROVE_OPTION) 
                String name = chooser.getSelectedFile().getPath();
                label.setIcon(new ImageIcon(name));
            
        );
        
        //定义"退出"菜单项
        JMenuItem exitItem = new JMenuItem("退出(Q)");
        exitItem.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_Q, KeyEvent.ALT_DOWN_MASK)); //退出加速键:Alt + Q
        exitItem.setMnemonic(KeyEvent.VK_Q);
        fileMenu.add(exitItem);
        exitItem.addActionListener(event -> System.exit(0));
    

 

运行后打开图片:

技术图片

以上是关于图片查看器的主要内容,如果未能解决你的问题,请参考以下文章

win10图片查看器怎么连续看图?

电脑中没有图片查看器怎么办?

win7自带图片查看器没有了,怎么装个?

windows 照片查看器无法打开图片

windows照片查看器没了

windows照片查看器无法显示此图片,因为计算机内存不足?