菜鸟初学Java的备忘录(十)(转)

  菜鸟初学Java的备忘录(十)(转)[@more@]

2003年1月26日星期日雨

  

回顾一下昨天所学习的基于连接池的插座,其原理中的要点如下:服务器开放有限个PooledConnectionHandler线程用来处理连接;客户的连接请求均加入到池连接池中(实际是linklist()对象);PooledConnectionHandler一旦发现连接池中有连接请求,就立即着手处理,大家都使用同一个池(所以它是静态变量)

  

目前为止,有关Java程序设计的一些基本内容都已经学习的差不多了。现在是学以致用的时候了。学习任何语言,要想真正的谈得上入门,都应该以一个实际的编程经验为标志的,我想。

  

以前用c++编过一个俄罗斯方块,觉得这个游戏的程序设计挺能体现面向对象的思想的. java和c++有很多共同点,依葫芦画瓢谁都会,那么就重新实现一遍吧,反正也忘得差不多了,权当温故知新。另外,既然花了那么多时间来研究插座,那就索性编出一个网络版的来。

  

俄罗斯方块的程序需要图形用户界面(GUI),而前面编的Java程序中,只有Applet程序实现了图形界面,但那是在AppletViewer或者浏览器的帮助下完成的。用Java来实现图形用户界面,我们需要用到框架类.Frame类是窗口类(windows)类的子类,是图形用户界面的基本窗口。阅读下面一个小程序并实现一下,就基本上可以对Java下的图形用户界面有所了解了。

  

文件名:FrameMemo.java
功能:弹出一个带有菜单的框架并且在框架里显示信息。在窗口中任意位置点击一下,程序退出。

  

进口java.awt。*;

  

公共类FrameMemo扩展帧
{
,

公共字符串公告;   

,公共FrameMemo (String s)
,{
,超级(年代);//超级在这里代表的是父类,和这所代表的本类相应,因此这里调用的是父类的构造函数
,公告=s;
,
调整(300300);
SetMenu ();}

  


,公共FrameMemo()//重载的构造函数
,{
,(“这是框架的一份备忘录”);//这里调用的是FrameMemo (S)构造函数
,
SetMenu ();}

  

,公共空间SetMenu ()
,{
,
菜单m, n;m=新菜单(“示例”);
,m。(新添加菜单项(“基本”)),
,m。(新添加菜单项(“简单”)),

  

,n=新菜单(“例子”);
,n。(新添加菜单项(“子基本”)),
,

m.add (n);   

,菜单条mb=new菜单条();
,
mb.add (m);setMenuBar (mb);
,}

  

,公共空间油漆(图形g)
,{
,g.drawString(15)公告,15日,
,g。拉带(“点击任何地方退出”,45岁,45);
,
,}

  

,公共空间开始()
,{
,
show ();}

  

,公共布尔mouseDown (e, int x, int y)
,{
,隐藏();//隐藏窗口
,处理();//释放资源
,
system . exit (0);返回false;
,}

  

,公共静态void main (String参数[])
,{
,
FrameMemo m;m=新FrameMemo ();
,
m.start ();}
}

  

建立了窗口之后,我们还需要在窗口中摆放各种图形界面对象,也就是说要布局。布局的原理在前面介绍过,需要使用到布局容器,然后把对象按照一定的规则填进去。下面一个例子中演示了大部分我们需要用到的容器。我给出了很详细的注释,帮助我以后一旦忘了Java的语法后,可以迅速的寻找失去的记忆。

  

文件://布局范例
文件://j2sdk1.4.1下编译通过

  

进口java.awt。*;
进口java.applet。*;

  

公共类布局扩展帧
{
,小组帧,风格;//两个字体按钮放到帧这个面板中,三个风格按钮放到风格这个面板中
,
按钮无衬线;按钮大胆,大,小,//定义两个字体按钮,三个风格按钮
,SampleCanvas样本;//定义重载后的画布对象
,字符串?新的字符串(“SansSerif”);
,int fBold=0;
,

int fSize=12;   

,公共布局(){
,超级(“布局的一份备忘录”);
,setFont(新字体(“无”Font.BOLD 12));
,setLayout(新BorderLayout());//设置BorderLayout布的局,该方式可安排五个元素
,文件://方位为东西南北中

  

文件://下面的程序为设置底部即南边的两个按钮
,?new面板();
,帧。setLayout(新GridLayout(1、2、5、10));//为面板设置GridLayout布局
,文件://该布局为网格布局
,文件://四个参数分别为
,文件://行数,列数,水平间隔(像素),垂直间隔(像素)
,无=new按钮(“无衬线字体”);
,fnames.add (sans);
,衬线=new按钮(“无衬线字体”);
,fnames.add (serif);,文件://分别添加两个按钮

  

,add(帧,“南”),,文件://将面板列入BorderLayout布局中

  

文件://下面的程序为设置左部即西边的三个按钮
,风格=new面板();
,风格。setLayout(新GridLayout (3、1、10、5));

菜鸟初学Java的备忘录(十)(转)