1、和 luster 一起学习 java 编程(1)摘要这些东西很快就基本掌握了。于是开始看 java里面的线程(thread)。(2002-08-25 14:16:19)By Wing, 出处: luster一个线程的例子在朋友和媒体的鼓吹下,我开始学习 java了。关于 java的介绍我就不写了。这个文档只适合初学者。我的 email地址是:,欢迎大家和我交流学习体会。今天是 2001年 1月 13日,我将在以后的日子里在本网站本栏目不定期的发一些我的学习笔记和一些练习小程序,和初学者一起学习讨论。首先是花了 10分钟浏览了一编 java的基本语法结构,因为我自己有很多的 C/C+编程经验,所
2、以这些东西很快就基本掌握了。于是开始看 java里面的线程(thread)。下面是一个例子。import java.io.*;class Counter extends Threadint i = 0;public void run()while(i接收方程序,使用方法是:java Receiver 2000 quit注意:当发送方发出了 quit这个字符串之后,程序就会退出了。:)import .*;class Receiverpublic static void main(String args)throws Exceptionint rPort=Integer.parseInt(args
3、0);DatagramSocket sock = new DatagramSocket(rPort);byte takeLine = new byte80;DatagramPacket p;String killCommand = args1;String receiveString = “;while(!receiveString.equals(killCommand)p = new DatagramPacket(takeLine,takeLine.length);sock.receive(p);System.out.println(receiveString = new String(p.
4、getData(),0,0,p.getLength();你运行试试看,再看看源程序,看看收发结构,很简单哦。和 luster 一起学习 java 编程(4)摘要和 luster一起学习 java编程(2002-08-25 14:18:07)By Wing, 出处: luster和 luster一起学习 java编程(4) 高兴又能和你一起学习 java编程了,我写了 3篇和 luster一起学习 java编程了,其实呢,这些内容基本上是我学习的时候敲到计算机里面的例子程序。给大家一个参考,自己还要多看 java的文档。如果你懒得去看英文的话,干脆去买本中文的 java编程入门的书放在手边,看看
5、。我觉得图形界面是很吸引人的一个地方,看了看文档,最常用的是 java.awt包了,我研究了一些文档,下面是一个简单的例子。import java.awt.Color;import java.awt.BorderLayout;import java.awt.event.*;import javax.swing.*;class SwingUI extends JFrameimplements ActionListener JLabel text, clicked;JLabel warn;JButton button, clickButton;JPanel panel;private boolea
6、n _clickMeMode = true;SwingUI() /Begin Constructortext = new JLabel(“Im a Simple Program“);warn = new JLabel(“Heheh“);button = new JButton(“Click Me“);button.addActionListener(this);panel = new JPanel();panel.setLayout(new BorderLayout();panel.setBackground(Color.white);getContentPane().add(panel);p
7、anel.add(BorderLayout.CENTER, text);panel.add(BorderLayout.NORTH, warn);panel.add(BorderLayout.SOUTH, button); /End Constructorpublic void actionPerformed(ActionEvent event)Object source = event.getSource();if (_clickMeMode) text.setText(“Button Clicked“);button.setText(“Click Again“);_clickMeMode =
8、 false; else text.setText(“Im a Simple Program“);button.setText(“Click Me“);_clickMeMode = true;public static void main(String args)SwingUI frame = new SwingUI();frame.setTitle(“Example“);WindowListener l = new WindowAdapter() public void windowClosing(WindowEvent e) System.exit(0);frame.addWindowLi
9、stener(l);frame.pack();frame.setVisible(true);你不妨编译运行看看。这是我第一次写 java图形界面的程序,效果真的很棒。当我把我在 linux编译好的类文件,直接拷贝到 windows2000下面运行的时候,我高兴极了!真是方便,可以直接运行!而且是图形界面的。上面的程序,很简单,大家仔细看看就能看懂,如果不懂,再看看 java的文档就 ok了。写到这里,我们走马观花式的学习了线程、socket 和简单的 awt图形界面程序。其实还学了很多基本的语法,我们的速度还是很快的。呵呵。和 luster 一起学习 java 编程(5)摘要和 luster一
10、起学习 java编程(2002-08-25 14:19:12)By Wing, 出处: luster和 luster一起学习 java编程(5) 这次我试了试在 canvas上做图的方法。使用 java.awt包,可以提供一个友好的图形界面,我们可以自由的布置图像界面的效果,而且可以画一些东西。这对于我们初学者来说,也许是个比较好的学习例子。我看了看文档,发现一个简洁的方法就是定义一个 Canvas的子类,用paint()方法在属于该 canvas类型的部件的 Graphics实例上绘制图形。下面的代码生成了一个 Frame以及 Canvas的一个子类的 4个实例,他们的paint()方法绘制
11、出实心圆。本来想画些其他东西的,后来觉得圆最简单好用,而且其他的绘图函数我看了一下,好多啊,参数就懒得去弄了。如果你有兴趣的话,部分去看看。用一两个函数试试看。呵呵。下面是代码:import java.awt.*;class CirclesCanvas extends Canvaspublic void paint(Graphics ccG)/ ccG.setColor(new Color( new double(Math.random().floatValue(),new double(Math.random().floatValue(),new double(Math.random().f
12、loatValue();ccG.fillOval(0,0,96,96);class FlowCircles extends Framepublic static void main(String args)Frame fC = new FlowCircles(4);fC.resize(384,384);fC.show();public FlowCircles(int howMuchCanvas)setTitle(“welcome to lusters Gallery“);setLayout(new FlowLayout();for(int i=0;i运行的结果如何?是画出了 4个圆吧。呵呵。和
13、 luster 一起学习 java 编程(6)摘要和 luster一起学习 java编程(2002-08-25 14:19:39)By Wing, 出处: luster和 luster一起学习 java编程(6)今天一大早起床,到计算机旁开始学习 java,我想我们对 awt提供的图形界面还是了解得很少。于是我打算再好好看看这里面的内容。顺便提一下,关于 java有一本很好的书,叫 Thinking in Java,大家有一会一定要阅读!电子版网上是有下载的。下面我们看看事件处理。我们实现一个简单的功能,当用鼠标在窗口的某位置点一下的时候,我们就在该点留下一个小圆点。下面是源代码:import
14、 java.awt.*;class SayBonjour extends Framepublic static void main(String args)Frame sB = new SayBonjour();sB.resize(256,128);sB.show();public void paint(Graphics sBG)sBG.drawString(“ Bonjour!“, 32,58);public boolean handleEvent(Event anEvent)switch(anEvent.id)case Event.WINDOW_DESTROY:System.exit(0)
15、;return false;case Event.MOUSE_DOWN:Graphics sbG = getGraphics();sbG.fillOval(anEvent.x, anEvent.y, 5,5);return true;default:return super.handleEvent(anEvent); 我们在类里面定义了 handleEvent()这个方法,它获取对当前 Graphics的联系,查看对象 Event的 x和 y内容,如果是鼠标点击的话,x 和 y就是当前鼠标的坐标值,然后就调用相关的函数话一个点。你不妨运行体会一下。程序本身很简单的。但是如果我们调整窗口大小的话,刚刚画的这些小圆点将都不见了。为什么呢?因为窗口大小调整后要调用方法 paint(),而 paint()方法里面对这些小圆点一无所知。 如果我们需要我们的小圆点子保持住的话,很简单啊。开个数组什么的,保存这些信息,然后在 paint()方法里面画出来。