《Core Java2 Volume I: Fundamentals》(原书第5版)
机械工业出版社
以前看过的关于Java的东西都很零碎,感觉有必要重新学习一下Java的一些基础知识,特记。
第1章 Java 简介
1、我们认为Java的种种优势在它应用于新型设备或新应用领域中才能体现,而不是用它来重写那些已存在的应用程序。
///所谓各领风骚十来年,大致就是这个意思;同时,泛泛地比较语言之间的优劣是没有意义的
2、简单的说,面向对象的程序设计是把重点放在数据(等于对象)以及对象接口上的一个编程技术。以木匠为例,一个
“面向对象”的木匠首先会关心他要制造的椅子,然后才是制造这椅子的工具;而一个“非面向对象”的木匠会首先考虑他的工具。
///只有思想提上去,才可以改善做事的方式。可怕的是:往往在使用着面向对象的工具,却使用着面向过程的思想
第2章 Java 编程环境
1、一个简单而有趣的界面程序,显示.gif 图像
///ImageViewer.java
import java.awt.*;
import java.awt.event.*;
import java.awt.image.*;
import java.io.*;
import javax.swing.*;
public class ImageViewer{
public static void main(String[] args){
JFrame frame = new ImageViewerFrame();
frame.setTitle("ImageViewer");
int w = 320, h =400 ;
Dimension ScreenSize = Toolkit.getDefaultToolkit().getScreenSize();
frame.setBounds((int)((ScreenSize.width-w)/2),(int)((ScreenSize.height-h)/2),w,h);
frame.setSize(w,h);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.show();
}
}
class ImageViewerFrame extends JFrame{
public ImageViewerFrame(){
//set menu
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 FileOpenListener());
JMenuItem exitItem = new JMenuItem("Exit");
menu.add(exitItem);
exitItem.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent event){System.exit(0);}
});
//use a label to display the iamges
label = new JLabel();
Container contentPane = getContentPane();
contentPane.add(label,"Center");
}
private class FileOpenListener implements ActionListener{
public void actionPerformed(ActionEvent evt){
//set up file chooser
JFileChooser chooser = new JFileChooser();
chooser.setCurrentDirectory(new File(".")) ;
//accept all files ending with .gif
chooser.setFileFilter(new javax.swing.filechooser.FileFilter(){
public boolean accept(File f){
return f.getName().toLowerCase().endsWith(".gif") f.isDirectory();
}
public String getDescription(){
return "GIF Images";