今天跟大家玩个java贴图吧。
游戏都有图案,哪怕是大家感觉比较基本的俄罗斯方块也是有多种形状的图案组成的游戏。
一般打开游戏首先都能看到一个初始的画面。那么这个初始画面是如何实现的呢?正是篇文章提到的init()方法和paint()方法。不过在此之前要先获取图像,比如一个游戏中有3个人物,那么人物要先从服务器获取到计算机中,所使用的是:
public Image getImage(URL url)或public Image getImage(URL url, String name)
前者的参数为图像文件在服务器中的url地址,如http://127.0.0.1/games/i...
今天玩个java贴图吧。
游戏都有图案,哪怕是大家感觉比较基本的俄罗斯方块也是有多种形状的图案组成的游戏。
一般打开游戏首先都能看到一个初始的画面。那么这个初始画面是如何实现的呢?正是篇文章提到的init()方法和paint()方法。不过在此之前要先获取图像,比如一个游戏中有3个人物,那么人物要先从服务器获取到计算机中,所使用的是:
public Image getImage(URL url)或public Image getImage(URL url, String name)
前者的参数为图像文件在服务器中的url地址,如http://127.0.0.1/games/imag...
小应用程序必须要通过浏览器运行,其生命周期开始与当它被浏览器加载的那一刻,结束于浏览器被关闭或转移至其他网页时。从开始到结束有四个方法会在某些时间被发生时被调用:
init() 程序第一次被加载时
start() 程序开始运行时
stop() 程序停止运行时
destroy() 程序结束时
这四个方法必须继承于Applet类,需要在子类中重定义这些方法的功能。
通过操作下面这个例子可以反映四个方法被调用的时机:import java.applet.*;import java.awt.*;public class LifeCycle extends Applet{...
最近受高人指点,又把java捡起来了,学着煸编游戏,当然编魔兽那样的大型游戏还是要用c++比较好,不过java煸点儿小的东西也是很好用的。
一边学一边把学会的总结出来发到这里,希望能对大家有所帮助。
今天先说一下关于java小应用程序,applet。
这个东西跟平时玩的java程序有些不同。 Java小应用程序要嵌入到网页中运行。(虽然这点很基本,但我们课堂上可没讲小应用程序)。
先玩个例子
Import java.awt.*;
Import java.applet.*;
Public class AppletClassicExample extends ...
虽然本来下定决心今晚要早睡觉,但是想了想还是决定把这个遗弃已久的Java计算器update一下。
毕竟这个计算器的最初版曾在bug还很多,并遭到网上朋友指责时,由于可恶漫长而又没有意义的期末考试而不得不放在一边。还得我一个月没有做任何编程相关的事情以至于放假后一段时期对编程没有了感觉。
看过一本书上写的如果一件事情连续放弃了72小时没有做,那么基本上就不会再被捡起来了。前几天也在看这个程序,可是由于放弃了太长时间,很多思路已经不清了。今晚趁着一时兴起,终于解决了这个计算器的一点儿小bug:
修正了初始状态下输入0时屏幕出现多个0的bug。修正了AC后无法进行除法的bug(曾有网...
利用一周的课余时间,做了这么一个计算器。功能还不完善。
目前可以实现加减乘除四则运算,也可以实现连加连减连乘连除。
使用了Flowlayout布局管理器,窗口大小设置为不可变。
但缺陷很多:
归零(AC)键存在严重bug
不能做四则混合运算
显示部份不能呈现右结合
还缺少M+ M- MR功能
布局管理器有待于更换,以便更改按钮大小
带码不够简洁
不完善的地方,欢迎各位朋友多指点!
代码下载
第一,声明Button
第二,setLabel()
第三,add()
第四,addActionListener(this)
第五,implements ActionListener中的actionPerformed()
今晚有一个按钮忘记addActionListener(this)了,搞得我debug了半天也没想出为什么其他按钮功能都正常,那个按钮却没功能。
再不能忘了!!提高效率中!!!
下面再谈谈事件监视器,首先回忆一下以前的事件监听器,最基本的方法就是在类名后继承需要用到的事件监听器,然后对事件监听器进行注册,并以this为参数,然后对事件监听器的每个方法进行实现,即使用不到的方法也要以相应的事件类别对象实现一下。
今天看了Button组件的事件监听,又加深的理解了一下:
技术教程上是这样说的:
“按钮是最常用的一个组件,其构造方法是:Button b = new Button("Quit"); 当按钮被点击后,会产生ActionEvent事件,需ActionListener接口进行监听和处理事件。 ActionEvent的对象调用getActi...
今天看了匿名类和按钮组件的接口监听和事件处理,看完以后,对事件适配器和事件监听器有了个新的认识。
首先说说事件适配器,与我现在的感觉,事件适配器最好用的办法就是使用匿名类,在监听器注册的时候使用匿名类可以直接调用事件适配器,而不用利用内部类从适配器中继承,
内部类继承适配器的方法:
class MyMouseMotionListener extends MouseMotionAdapter{ /*内部类开始*/ public void mouseDragged(MouseEvent e) { String s="Mouse draggin...
Java GUI学习总结(3)
今天重新看了一遍GUI,结合着JavaDoc做了很多测试,收获也不算小,随手赶紧记了下来。
1.TextField的构造方法TextField(int),参数中的int型参数为TextField的长度。在我的电脑上输入100还未达到全屏长度,但输入200就超过了。
2.如果使用FlowLayout作为布局管理器,那么在add中加入”North”等参数就没有什么效果了。
3.另外FLowLayout的构造方法中有一种形式是含有三个参数的。Doc上写的是:public FlowLayout(int align, ...
AWT事件及其相应的监听器接口,一共10类事件,11个接口.
从英语单词来理解,能理解得快一些,不过貌似全记下来也确实得花点儿小功夫。
OK,以上Copy了半天别人的东西,下面写点儿自己的理解吧。
想写个带事件监听器的程序,import一个java.awt.Event是必不可少的。声明的类如果需要加入事件监听器,则必须实现需要的事件类别对应接口,在窗口中增加事件监听器,则需要在Frame类的实例中注册,拥有注册功能的方法一般名为监听器接口名前加add,比如WindowsListener的注册方法为addWindowsListener,方法的参数只需填一个this。
因为是实现...
事件监听器就是与上面的事件相对应的,每类事件都有对应的事件监听器,监听器是接口,根据动作来定义方法。
例如,与键盘事件KeyEvent相对应的接口是: public interface KeyListener extends EventListener { public void keyPressed(KeyEvent ev); public void keyReleased(KeyEvent ev); public void keyTyped(KeyEvent ev); }
又例如窗口事件接口:
public interface WindowL...
趁热打铁,把事件监听器的研究也写出来吧!
在生成窗口中增加事件监听器,这样就能使程序接受鼠标和键盘的动作,作出相应的反应。与awt有关的所有事件监听器都由java.awt.AWTEvent类派生,它也是EventObject类的子类,AWT事件共有10个类,可以归为两大类,低级事件和高级事件。
Java.util.EventObject类是所有事件对象的基础父类,所有事件都是由它派生出的awt的相关类继承于java.awt.AWTEvent类,awt事件分为两大类:高级事件和低级事件。低级事件是指基于组件和容器的事件,当一个组件上发生事件,如:鼠标的进入,点击,拖放等,或组件的窗口开...
今天把编程中国网站里java技术教程第五讲《AWT图形用户界面设计》下载下来,研究了一天的GUI,学到了不少东西,不过好像有点儿记不住了,所以重新总结一下,把今天看到的理理思路,记录下来。
首先是关于Frame类,今天学到它的构造函数为Frame(String),String参数接收的是即将生成的窗口的标题。Frame下包含以下这样几个方法。
其中我感觉必不可少的是:
setVisible(boolean);表示窗口是否可见,boolean应添为true;
其次重要的,我认为应该是:setSize(int,int)方法,这个方法控制的是窗口的初始大小,如果没有这...
用接口实现读卡器读取磁卡并计数
/* 接口Card*/
interface Card{ int getCount(); //定义getCount()方法用于返回卡内Count计数值 String getName(); //定义getName()方法用于返回持卡者姓名 void setCount(); //定义setCount()方法用于对卡内计数值进行加1操作 }
/*Zcard.java*/
class Zcard implements Card{ private String name="ZB"; //持卡者姓名 int count=4; //卡...
class Rectangle{ int perimeter(int height,int width) { return (height+width)*2; } int proportion(int height,int width) { return height*width; } public static void main(String[] args) { Rectangle R=new Rectangle(); System.out.println("Perimeter is "+ R.perimeter(4,5)); System.out.println("Pro...
class Square{ int length; int width; int proportion; int perimeter; Square() { length=0; width=0; } Square(int x,int y) { length=x; width=y; } void proportion() { proportion=length*width; System.out.print("Proportion is "); System.out.println(proportion); } void perimeter() { perimeter=(l...
class Point{ static int z; Point() { } static void output() { System.out.println(z); } public static void main(String[] args) { Point.output(); }}
//static变量不赋初值则默认为0
class Point{ final double PI; Point() { PI=3.1415926; } Point(int a,int b) { PI=4.1415926; } void output() { System.out.println(PI); } public static void main(String[] args) { Point pt; pt=new Point(); pt.output(); Point pt2=new Point(2,3); pt2.output(); } } //结论:不同构造函数中定义常量值可以不同
一年前就打算学学java不过,刚开始学没有个像样的编译器就好像练跆拳道不穿道服一样,一点儿激情都没有。
更打消了我上进心的是,去某老师那儿偷艺时学来的运行helloworld方法居然不好使,过去请教,结果遭到冷眼。
一气之下,玩了一年的c++,看那东西多像样,一行一行的代码怎么看怎么顺眼,还有个vc++6.0的编译器,多帅呢,功能那么强大。
不过,一直堵在我心里的是同寝的某个浮躁的家伙居然运行出java的helloworld了,那小子用这个在班里猖狂,说自己会java。毕竟人家弄出来了,我没弄出来,没法摆平他。
下学期要学java,所以我这个假期就开始玩java了。先搞了个hel...