JAVA打开图片(面板自动随图片大小调整)

来源:互联网 发布:js 数组 push 键值对 编辑:程序博客网 时间:2024/06/09 18:14

使用JAVA打开图片。(面板可以随着图片的不同,调整不同的大小去展示图片)


JAVA代码:

public class ShowPic {    /**     * @param args     */    public static void main(String[] args) {        // TODO Auto-generated method stub        EventQueue.invokeLater(new Runnable() {                        @Override            public void run() {                // TODO Auto-generated method stub                JFrame frame = new ImageViewerFrame();                frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);                frame.setVisible(true);            }        });    }}class ImageViewerFrame extends JFrame{    public ImageViewerFrame(){        setTitle("ImageViewer");        setSize(DEFAULT_WIDTH, DEFAULT_HEIGHT);        label = new JLabel();        add(label);        chooser = new JFileChooser();        JMenuBar menubar = new JMenuBar();        setJMenuBar(menubar);        JMenu menu = new JMenu("File");        menubar.add(menu);        JMenuItem openItem = new JMenuItem("Open");        menu.add(openItem);        JMenuItem exitItem = new JMenuItem("Close");        menu.add(exitItem);this.setLocation(screen.width/2-this.getWidth()/2,screen.height/2-this.getHeight()/2);        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 name = chooser.getSelectedFile().getPath();                    File picture = new File(name);                    BufferedImage sourceImg = null;try {sourceImg = ImageIO.read(new FileInputStream(picture));} catch (FileNotFoundException e) {// TODO Auto-generated catch blocke.printStackTrace();} catch (IOException e) {// TODO Auto-generated catch blocke.printStackTrace();}                    setSize(sourceImg.getWidth(),sourceImg.getHeight());                    setLocation(screen.width/2-sourceImg.getWidth()/2,screen.height/2-sourceImg.getHeight()/2);                    label.setIcon(new ImageIcon(name));                }            }        });        exitItem.addActionListener(new ActionListener() {                        @Override            public void actionPerformed(ActionEvent arg0) {                // TODO Auto-generated method stub                System.exit(0);            }        });    }    Toolkit tool = Toolkit.getDefaultToolkit();    Dimension screen = tool.getScreenSize();    private JLabel label;    private JFileChooser chooser;    private static final int DEFAULT_WIDTH = 300;    private static final int DEFAULT_HEIGHT = 400;}


图一:

图二:

图三:


图四:


0 0