Applet 之 JAVA入门探索

练习

前提,公司战略方向改变需要技术从.net转向java于是自学了一点java 发现基础部分很多相似之处当然也有很多很多的不同之处 比如 对已string类型 单引号与双引号敏感 等等这里就不一一说明啦,来看看这第一次写的一个小程序.

环境信息:win server 2008 R2 开发工具 Eclipse  4.3.0

要求:实现简单图片查看功能

直接上代码:

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

public class HelloWord {

	public static void main(String[] args) {
		// TODO 自动生成的方法存根
    EventQueue.invokeLater(new Runnable() {

		@Override
		public void run() {
			// 开始运行
			JFrame frame=new ImageViewerFrame();
			frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
			frame.setVisible(true);
		}
	});
	}
}
//显示图片
class ImageViewerFrame extends JFrame{
	public ImageViewerFrame() {
		setTitle("图片查看");
		setSize(DEFAULT_WIDTH,DEFAULT_HEIGHT);

		//创建label去储存图片
		label=new JLabel();
		add(label);

		//选择文件
		chooser=new JFileChooser();
		chooser.setCurrentDirectory(new File("."));

		//设置按钮
		JMenuBar menuBar=new JMenuBar();
		setJMenuBar(menuBar);

		JMenu menu=new JMenu("文件");
		menuBar.add(menu);

		JMenuItem opItem=new JMenuItem("打开");
		menu.add(opItem);
		opItem.addActionListener(new ActionListener() {

			@Override
			public void actionPerformed(ActionEvent e) {
				// 显示选择按钮
				int result=chooser.showOpenDialog(null);
				//如果已选择文件就显示在lab中
				if (result==JFileChooser.APPROVE_OPTION) {
					String name=chooser.getSelectedFile().getPath();
					label.setIcon(new ImageIcon(name));
				}
			}
		});
		JMenuItem exitItem=new JMenuItem("退出");
		menu.add(exitItem);
		exitItem.addActionListener( new ActionListener() {

			@Override
			public void actionPerformed(ActionEvent arg0) {
				// 执行退出
				System.exit(0);
			}
		});
	}

	private JLabel label;
	private JFileChooser chooser;
	private static final int DEFAULT_WIDTH=300;
	private static final int DEFAULT_HEIGHT=400;
}

  这段代码来自 <JAVA核心技术-卷1基础知识> ,开始看起来的时候很多地方能看懂(可能是有.net基础的原因)感觉特别像.net写webform包括创建按钮,增加按钮功能等等,而其中的引用 土话.dll文件 相当于 java中的包,引用方式大致相同, 从头来分析一下这个段代码:

首先是程序引用,.net叫引用程序集 .net中实现方法的复用,程序之间相互调用首先需要添加该程序的引用到程序集中,然后从bin目录中添加该.dll文件地址 这样把文件引用到当前项目中重新生成.csproj之后,凡是添加该引用的项目都可以访问到这个方法或这个项目,而java引用包这方面有四种引用方式,原理大致与.net差不多 更简单的是比如导入同一项目中的很多包 可以用*代替,例如import java.lang.*也就是引用java.lang下所有的包,有点像.net的命名空间,不用写具体哪个命名空间 哪个类balabala..

其他的main函数啊,void static之类的就不多说了,这里就深入说一下EventQueue.invokeLater这个,首先介绍一下EventQueue这个 查阅了相关资料 个人是这个意思,它是swing  中GUI重要的组成部分他主要负责AWTEvent事件分发机制,就像是个物流中心,当有事件触发时候系统会把这个事件发送到物流中心 方便他再次分发,而参考文章中提到这个事件分发机制实际上是同步分发机制,也就意味着如果时间多的时候需要排队等待,当我第一次看到invokeLater这个方法时候 第一反应是.net中的委托常用的BeginInvoke/Invoke 异步/同步 执行使用委托的原因常常是因为有回调函数这点与windows的GUI机制不谋而合,好处显而易见执行完成之后会自动清除,保证程序可确定性,减少其他程序类入侵.

程序继续执行ImageViewerFrame,创建当前窗口关闭按钮,显示当前窗口,重要的是下面创建该窗口 与.net创建方式大致相同包括 按钮,按钮功能设定,这段代码中重写了打开文件与关闭方法,有语言功底的孩子硬很轻松能读懂,监听读取文件事件然后重新显示在矿体内部.

时间: 2024-08-10 17:54:05

Applet 之 JAVA入门探索的相关文章

Java入门 - 高级教程 - 08.Applet

原文地址:http://www.work100.net/training/java-applet.html更多教程:光束云 - 免费课程 Applet 序号 文内章节 视频 1 概述 - 2 Applet的生命周期 - 3 一个简单Applet程序 - 4 Applet类 - 5 Applet的调用 - 6 获得Applet参数 - 7 指定Applet参数 - 8 应用程序转换成Applet - 9 事件处理 - 10 显示图片 - 11 播放音频 - 请参照如上章节导航进行阅读 1.概述 A

Java - Java入门(2-1am)

第一讲.Java入门 1. 计算机语言是人和计算机进行交互的一种工具,人们通过使用计算机语言编写程序来向计算机施令,计算机则执行程序,并把结果输出给用户. 2. 机器语言:由0.1序列构成的指令码组成 如:10000000  加        10010000减          11110000 打印 3. 汇编语言:用助记符号描述的指令系统 如: Mov   A, #10; Mov   B, #20; Add   A,  B; 4. 高级语言: 面向过程的高级语言:程序设计的基本单元为函数

Java入门——面向对象基础(三)

Java入门——抽象类与接口的应用 本Blog内容 为抽象类与接口实例化 抽象类的实际应用——模板设计 接口的实际应用——制定标准 设计模式——工厂设计 设计模式——代理设计 为抽象类与接口实例化 利用多态性 1 package Sep16; 2 3 public class AbstractCaseDemo1 { 4 5 /** 6 * @param args 7 */ 8 public static void main(String[] args) { 9 // TODO Auto-gene

java入门第二步之helloworld【转】

前一篇博客已经介绍了jdk的安装:接下来我们就乘热打铁,完成第一个程序:helloworld(每学一样程序的新东西都是从实现helloworld开始的) 1.不是用开发工具IDE,只是使用记事本来实现: 打开计算本,在记事本上写如下代码,现在可以先不管是什么意思: public class HelloWorld { public static void main(String[] args) { System.out.println("这是我的第一个程序!!"); } } 保存,文件名

Java入门——多线程(二)

Java入门——多线程(二) 线程的状态 要想实现多线程,必须在主线程中创建新的线程对象.任何线程一般具有5种状态. 创建状态:用构造方法创建一个线程对象之后,新的线程就处于该状态.已经有了相应的内存空间和其他资源和其他资源. 就绪状态:线程进入线程队列排队,等待CPU服务. 运行状态:CPU处理,自动调用run()方法. 阻塞状态:就是在执行过程中暂时挂起.原因有:人为挂起,CPU的决定,sleep(),suspend(),wait()等方法.只有当引起阻塞的原因被消除后,线程才能转入就绪状态

Java入门-第2篇

第一个Java程序 package com.java24hours; //这一行告诉计算机将程序的包名称命名为com.java24hours class Saluton{                   //这句话意思是请将我的Java程序命名为Saluton public static void main(string[] arguments){  //这句话是告诉计算机:程序的主要部分从这里开始 //My first Java program goes here } } 运行该程序之前必

Java入门学习知识点汇总--第一部分

Java入门重要知识点在这里总结一下,以方便日后复习,这部分内容主要有:变量和常量,常用的运算符,流程控制语句,数组,方法这些内容 一.变量和常量 1.Java关键字 先贴张图: 所有关键字区分大小写. 2.标识符 标识符就是用于给 Java 程序中变量.类.方法等命名的符号. 注意几条规则: 标识符可以由字母.数字.下划线(_).美元符($)组成,但不能包含 @.%.空格等其它特殊字符,不能以数字开头. 标识符不能是 Java 关键字和保留字,但可以包含关键字和保留字. 标识符是严格区分大小写

java入门第一步之完成jdk的安装(window)【转】

为了面向更多的人类,我决定重温我的java起步: 要进行java开发第一步就是进行java环境的安装,也就是jdk的按装: 1.由于java被oracle收购了,我们下载jdk也就去oracle的官网进行下载http://www.oracle.com/technetwork/java/archive-139210.html 下载jdk的jdk应该是一个java文件夹,里面有jdk和jre两个文件夹,正确下载后我们一般是将该j整个文件放到C:\Program Files\目录下: 2.接下来我们开

Java入门第一章

后天就是十一长假了,亲们准备好了去哪儿玩了吗? 今天有点空,就来聊聊Java吧,当然是一些Java入门知识了,网上有很多,这里我只是列举一些我自己学到的,感谢大家关注喵的博客这么久,也为大家带来点新知识吧,一定要相信每天学一一点知识,尽管很少,但是,慢慢的你就会成为这一行业的巨头,前提是你得坚持不懈. 1.类和对象? 类:对象的类型,具有相同特征(属性)和行为(方法)的事物的抽象的集合. 对象:类的具现化(类里面的具体个例). 2.面向对象? 面向对象:以对象为编程中心,以事件为驱动,功能模块化