首页 > 编程语言 >Java: Image Viewer Frame

Java: Image Viewer Frame

时间:2022-10-04 22:11:09浏览次数:48  
标签:Java Viewer menu Image chooser label var new

 

/**
 * 版权所有 2022 涂聚文有限公司
 * 许可信息查看:
 * 描述:
 * Core Java, Volume I: Fundamentals, Twelfth Edition by Cay S.Horstamnn
 * Core Java, Volume II: Advanced Features, Twelfth Edition by Cay S.Horstamnn
 * Core Java
 * 历史版本: JDK 17.01
 * 2022-09-12 创建者 geovindu
 * 2022-09-12 添加 Lambda
 * 2022-09-12 修改:date
 * 接口类
 * 2022-09-12 修改者:Geovin Du
 * 生成API帮助文档的指令:
 *javadoc - -encoding Utf-8 -d apidoc ImageViewerFrame.java
 * Interface
 * Record
 * Annotation
 * Enum
 * */


package CoreJava.twelfth;

import java.awt.*;
import java.io.*;
import javax.swing.*;

/**
 *
 *
 * */
public class ImageViewerFrame  extends JFrame{

    private static final int DEFAULT_WIDTH = 300;
    private static final int DEFAULT_HEIGHT = 400;
    /**
     *
     *
     * */
    public ImageViewerFrame()
    {
        setSize(DEFAULT_WIDTH, DEFAULT_HEIGHT);

        // use a label to display the images
        var label = new JLabel();
        add(label);

        // set up the file chooser
        var chooser = new JFileChooser();
        chooser.setCurrentDirectory(new File("."));

        // set up the menu bar
        var menuBar = new JMenuBar();
        setJMenuBar(menuBar);

        var menu = new JMenu("File");
        menuBar.add(menu);

        var openItem = new JMenuItem("Open");
        menu.add(openItem);
        openItem.addActionListener(event ->
        {
            // show file chooser dialog
            int result = chooser.showOpenDialog(null);

            // if file selected, set it as icon of the label
            if (result == JFileChooser.APPROVE_OPTION)
            {
                String name = chooser.getSelectedFile().getPath();
                label.setIcon(new ImageIcon(name));
            }
        });

        var exitItem = new JMenuItem("Exit");
        menu.add(exitItem);
        exitItem.addActionListener(event -> System.exit(0));
    }
}

  

调用:

 //
            EventQueue.invokeLater(() ->
            {
                var Duframe = new ImageViewerFrame();
                Duframe.setTitle("图片浏览 Image Viewer");
                Duframe.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
                Duframe.setVisible(true);
            });

  

输出:

 

 

 

 

 

 

 

 

标签:Java,Viewer,menu,Image,chooser,label,var,new
From: https://www.cnblogs.com/geovindu/p/16754615.html

相关文章

  • 【微信小程序】button和image组件的基本使用
    ......
  • 【Java练习题】Java 程序的输出 | 第十三套(集合)
    ......
  • Grafana监控java应用以及vCenter的方法
    Grafana监控java应用以及vCenter的方法背景最开始弄过vCenter的监控.但是发现很多地方已经不合适了.今天看了下jmx监控java的应用.顺便监控了下vCenter.这里简单记......
  • javaSE基础-IO流
    IO流File类基本概念File类的一个对象,代表一个文件或一个文件目录(俗称文件夹)File类声明在java.io包下File类中涉及到关于文件或文件目录的创建、删除、重命名、修改时......
  • java学习前
    java后台运行机制编译指令:javaca.java-dx.classa.java--->x.class运行指令:javax.classx.class是都可以直接运行的机器指令,一份java代码可以再多平台使用,原......
  • Java SE 宋红康 days04-高级篇-Java8新特性
    Java8两大最重要的改变:Lambda表达式和StreamAPI集合讲的是数据,Stream讲的是计算!1.Lambda表达式Lambda是一个匿名函数,我们可以把Lambda表达式理解为是一段可以......
  • 01.JavaScript简介
    JavaScript(JS)isalightweight,interpreted,orjust-in-timecompiledprogramminglanguagewithfirst-classfunctions.Whileitismostwell-knownasthe......
  • java---抽象类
    抽象类1.abstract修饰符可以用来修饰方法也可以修饰类,如果修饰方法,那么该方法就是抽象方法,如果修饰类,那么该类就是抽象类2.抽象类中可以没有抽象方法,但是有抽象方法的类,......
  • java算法——自建对数器
    用于验证所写算法是否正确,与java自带的函数方法进行比较,例如写一个排序算法,验证排序算法是否正确,采用Arrays.sort(arr)的方式,与自己所写的算法进行比对,经过多轮(比较大的一......
  • JavaWeb--数据库连接池,SpringJDBC
    JavaWeb--数据库连接池,SpringJDBCJavaWeb--数据库连接池概述其实就是一个容器(集合),存放数据库连接的容器。当系统初始化好后,容器被创建,容器中会申请一些连接对象,......