您的位置:首页 > 编程语言 > Java开发

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

2014-05-24 12:40 831 查看
第二章只是展示一下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函数。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐