Java实现匿名内部类的简单应用
在查看数码相片时,通常会使用一款图片查看软件,该软件应该能遍历文件夹下的所有图片并进行显示。编写程序,实现一个图片查看软件,它可以支持6张图片,通过单击不同的按钮就可以查看不同的图片。
思路分析:就是通过Window Builder组件新建个Application Window,在上面部署一些按钮,给按钮添加事件。需要注意的是,显示图片的方法是使用JLabel类的setIcon(new ImageIcon("图片路径"))方法。
代码如下:
import java.awt.EventQueue;
public class ImageViewer {
private JFrame frame;
JLabel lblNewLabel = new JLabel();
/**
* Launch the application.
*/
public static void main(String[] args) {
EventQueue.invokeLater(new Runnable() {
public void run() {
try {
ImageViewer window = new ImageViewer();
window.frame.setVisible(true);
} catch (Exception e) {
e.printStackTrace();
}
}
});
}
/**
* Create the application.
*/
public ImageViewer() {
initialize();
}
/**
* Initialize the contents of the frame.
*/
private void initialize() {
frame = new JFrame("图片浏览器");
frame.setBounds(100, 100, 336, 221);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.getContentPane().setLayout(null);
lblNewLabel.setBounds(101, 75, 117, 86);
frame.getContentPane().add(lblNewLabel);
JButton button = new JButton("\u56FE\u72471");
button.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
lblNewLabel.setIcon(new ImageIcon("src/images/1.png"));
}
});
button.setBounds(10, 10, 93, 23);
frame.getContentPane().add(button);
JButton button_1 = new JButton("\u56FE\u72472");
button_1.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
lblNewLabel.setIcon(new ImageIcon("src/images/2.png"));
}
});
button_1.setBounds(113, 10, 93, 23);
frame.getContentPane().add(button_1);
JButton button_2 = new JButton("\u56FE\u72473");
button_2.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
lblNewLabel.setIcon(new ImageIcon("src/images/3.png"));
}
});
button_2.setBounds(216, 10, 93, 23);
frame.getContentPane().add(button_2);
JButton button_3 = new JButton("\u56FE\u72474");
button_3.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
lblNewLabel.setIcon(new ImageIcon("src/images/4.png"));
}
});
button_3.setBounds(10, 43, 93, 23);
frame.getContentPane().add(button_3);
JButton button_4 = new JButton("\u56FE\u72475");
button_4.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
lblNewLabel.setIcon(new ImageIcon("src/images/5.png"));
}
});
button_4.setBounds(113, 43, 93, 23);
frame.getContentPane().add(button_4);
JButton button_5 = new JButton("\u56FE\u72476");
button_5.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
lblNewLabel.setIcon(new ImageIcon("src/images/6.png"));
}
});
button_5.setBounds(216, 43, 93, 23);
frame.getContentPane().add(button_5);
}
}
效果如图:

Java实现匿名内部类的简单应用的更多相关文章
- Java 8 Streams的简单使用方法
Java 8 Streams的简单使用方法 package JDK8Test; import java.util.ArrayList; public class Main { public stati ...
- 计算机网络(13)-----java nio手动实现简单的http服务器
java nio手动实现简单的http服务器 需求分析 最近在学习HTTP协议,还是希望动手去做一做,所以就自己实现了一个http服务器,主要功能是将http请求封装httpRequest,通过解析 ...
- 模拟java.util.Collection一些简单的用法
/* 需求:模拟java.util.Collection一些简单的用法! 注意:java虚拟机中并没有泛型类型的对象.泛型是通过编译器执行一个被称为类型擦除的前段转换来实现的. 1)用泛型的原生类型替 ...
- Rsession让Java调用R更简单
Rsession让Java调用R更简单 R的极客理想系列文章,涵盖了R的思想,使用,工具,创新等的一系列要点,以我个人的学习和体验去诠释R的强大. R语言作为统计学一门语言,一直在小众领域闪耀着光芒. ...
- java与C#的简单比较
刚刚看完java视频,做了个简单图: 新知识不多,大多是与以往知识的相互碰撞,一下做了java与C#的简单比较: Java C# 主类名与文件名 必须一 ...
- 多线程(三) java中线程的简单使用
java中,启动线程通常是通过Thread或其子类通过调用start()方法启动. 常见使用线程有两种:实现Runnable接口和继承Thread.而继承Thread亦或使用TimerTask其底层依 ...
- Java数据结构和算法 - 简单排序
Q: 冒泡排序? A: 1) 比较相邻的元素.如果第一个比第二个大,就交换它们两个; 2) 对每一对相邻元素作同样的工作,从开始第一对到结尾的最后一对.在这一点,最后的元素应该会是最大的数; 3) 针 ...
- JAVA课程设计——一个简单的教务人事管理系统
大三上学期期末总结,没错,上学期,写在下学期新学期开始,哈哈哈. 上学期学习了面向对象程序设计,课程设计的题目使用JAVA语言完成一个简单的教务人事管理系统,能够实现访问数据库的登录验证,分别按部门和 ...
- java web 项目中 简单定时器实现 Timer
java web 项目中 简单定时器实现 Timer 标签: Java定时器 2016-01-14 17:28 7070人阅读 评论(0) 收藏 举报 分类: JAVA(24) 版权声明:本文为博 ...
随机推荐
- Java关键字instanceof
深入Java关键字instanceof instanceof关键字用于判断一个引用类型变量所指向的对象是否是一个类(或接口.抽象类.父类)的实例. 举个例子: public interfa ...
- 使用x11vnc作为vncserver端
1 安装x11vnc $ sudo apt-get update $ sudo apt-get install x11vnc 2 生成密码 $ x11vnc -storepasswd Enter VN ...
- Java注释规范整理
Version:0.9 StartHTML:-1 EndHTML:-1 StartFragment:00000099 EndFragment:00018736 在软件开发的过程中总是强调注释的规范,但 ...
- LEARNING TO NAVIGATE IN COMPLEX ENVIRONMENTS
任务是地图里面导航,让agent从起始点到达指定位置. 用了supervised learning + reinforcement learning + lstm 用supervised learni ...
- Linux 常用小命令
1. 查看目录的总和 du -sh 路径 2. 查看linux目录下所有某种类型的文件的行数--> 就是想看自己写了多少行代码 find /opt/code/zk_css -name '*.p ...
- 第三百四十三节,Python分布式爬虫打造搜索引擎Scrapy精讲—scrapy模拟登陆和知乎倒立文字验证码识别
第三百四十三节,Python分布式爬虫打造搜索引擎Scrapy精讲—scrapy模拟登陆和知乎倒立文字验证码识别 第一步.首先下载,大神者也的倒立文字验证码识别程序 下载地址:https://gith ...
- NetBeans IDE集成Maven
NetBeans6.7更新版本已经内置对Maven支持.如遇以前的版本,Maven插件在插件管理器中可用.我们正在使用NetBeans在这个例子中使用6.9. 在NetBeans一些特点如下 您可以从 ...
- e559. 创建窗口
A frame is a component container that displays its contents in a top-level window with a title bar a ...
- unity-------------------Unity5.X 新版AssetBundle使用方案及策略
Unity5.X 新版AssetBundle使用方案及策略 1.概览 Unity3D 5.0版本之后的AssetBundle机制和之前的4.x版本已经发生了很大的变化,一些曾经常用的流程已经不再使 ...
- Git -- 新增分支添加新功能
软件开发中,总有无穷无尽的新的功能要不断添加进来. 添加一个新功能时,你肯定不希望因为一些实验性质的代码,把主分支搞乱了,所以,每添加一个新功能,最好新建一个feature分支,在上面开发,完成后,合 ...