core java 8 学习笔记(一) 一个简单的图片查看器的实现

第二章只是展示一下Java都能做些什么,这里是一个窗口程序,功能是可以查看图片。

先上源代码

package v1_chapter2;

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


/*
 * an image viewer program
 * @author not Halfish Zhang
 * @version 1.0 2014/5/24
 */

public class ImageViewer {
	public static void main(String [] args) {
		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);
			}
		});
	}
}

/**
 * a frame with a label to show an image
 */

class ImageViewerFrame extends JFrame
{
	public ImageViewerFrame()
	{
		setTitle("ImageViewer");
		setSize(DEFAULT_WIDTH, DEFAULT_HEIGHT);
		
		// use a  label to display the images;
		label = new JLabel();
		add(label);
		
		//set up the file chooser
		chooser = new JFileChooser();
		chooser.setCurrentDirectory(new File("."));
		
		// set up the menu bar
		JMenuBar menuBar = new JMenuBar();
		setJMenuBar(menuBar);
		
		JMenu menu = new JMenu("File");
		menuBar.add(menu);
		
		JMenuItem openItem = new JMenuItem("Open");
		menu.add(openItem);
		openItem.addActionListener(new ActionListener() {
			
			@Override
			public void actionPerformed(ActionEvent arg0) {
				// TODO Auto-generated method stub
				
				// 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));
				}
			}
		});
		
		JMenuItem exitItem = new JMenuItem("Exit");
		menu.add(exitItem);
		exitItem.addActionListener(new ActionListener() {
			
			@Override
			public void actionPerformed(ActionEvent arg0) {
				// TODO Auto-generated method stub
				System.exit(0);
			}
		});
		
	}
	
	private JLabel label;
	private JFileChooser chooser;
	private static final int DEFAULT_WIDTH = 300;
	private static final int DEFAULT_HEIGHT = 400;
	
}



1. 我新建了一个包,v1_chapter2,用于存放源代码;

2. 这里用到了GUI编程。一共两个类,ImageViewer和ImageViewerFrame,其中后一个是作者自己写的,继承了JFrame

3. 注意这些个空间之间的关系:JFrame(一个窗口) JLabel(用来放图片的) JFileChooser(文件选择器) JmenuBar(上面的菜单栏) JMenu(一个菜单) JMenuItem(菜单中的选项)

4. 通过openItem和exitItem这两个MenuItem调用addActionListerner来实现他们的功能。参数里是一个匿名内部类,重载了他的actionPerformed函数。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值