• 图片查看器


    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));
        }
    }

    运行后打开图片:

  • 相关阅读:
    js forEach方法
    day1总结
    jupyter notebook
    java_13网络编程
    原生 input radio 优化
    JQ 获取 input file 图片 显示在对应位置
    math.js 使用
    前端优化
    文字动态颜色变化效果
    谷歌,火狐隐藏滚动条
  • 原文地址:https://www.cnblogs.com/sunzhongyu008/p/11372392.html
Copyright © 2020-2023  润新知