电脑知识|欧美黑人一区二区三区|软件|欧美黑人一级爽快片淫片高清|系统|欧美黑人狂野猛交老妇|数据库|服务器|编程开发|网络运营|知识问答|技术教程文章 - 好吧啦网

您的位置:首頁技術文章
文章詳情頁

菜鳥初學Java的備忘錄(十)

瀏覽:2日期:2024-06-25 16:39:46
內容: 回顧一下昨天所學習的基于連接池的Socket,其原理中的要點如下:服務器開放有限個PooledConnectionHandler線程用來處理連接;客戶的連接請求均加入到Pool連接池中(實際是linklist()對象);PooledConnectionHandler一旦發現連接池中有連接請求,就立即著手處理;大家都使用同一個Pool(所以它是靜態變量)目前為止,有關Java程序設計的一些基本內容都已經學習的差不多了.現在是學以致用的時候了.學習任何語言,要想真正的談得上入門,都應該以一個實際的編程經驗為標志的,我想.以前用C++編過一個俄羅斯方塊,覺得這個游戲的程序設計挺能體現面向對象的思想的.Java和C++有很多共同點,依葫蘆畫瓢誰都會,那么就重新實現一遍吧,反正也忘得差不多了,權當溫故知新.另外,既然花了那么多時間來研究Socket,那就索性編出一個網絡版的來.俄羅斯方塊的程序需要圖形用戶界面(GUI),而前面編的Java程序中,只有Applet程序實現了圖形界面,但那是在AppletViewer或者瀏覽器的幫助下完成的.用Java來實現圖形用戶界面,我們需要用到Frame類.Frame類是窗口類(windows)類的子類,是圖形用戶界面的基本窗口.閱讀下面一個小程序并實現一下,就基本上可以對Java下的圖形用戶界面有所了解了.文件名:FrameMemo.java功能:彈出一個帶有菜單的框架并且在框架里顯示信息.在窗口中任意位置點擊一下,程序退出.import java.awt.*;public class FrameMemo extends Frame{ public String motd; public FrameMemo(String s) { super(s);//super在這里代表的是父類,和this所代表的本類相應,因此這里調用的是父類的構造函數 motd=s; resize(300,300); SetMenu(); } public FrameMemo()//重載的構造函數 { this('This is a Memo of Frame');//這里調用的是FrameMemo(S)構造 函數 SetMenu(); } public void SetMenu() { Menu m,n; m=new Menu('Examples'); m.add(new MenuItem('Basic')); m.add(new MenuItem('Simple')); n=new Menu('More Examples'); n.add(new MenuItem('Sub Basic')); m.add(n); MenuBar mb=new MenuBar(); mb.add(m); setMenuBar(mb); } public void paint(Graphics g) { g.drawString(motd,15,15); g.drawString('Click anywhere to Exit',45,45); } public void start() { show(); } public boolean mouseDown(Event e,int x,int y) { hide();//隱藏窗口 dispose();//釋放資源 System.exit(0); return false; } public static void main(String args[]) { FrameMemo m; m=new FrameMemo(); m.start(); }}建立了窗口之后,我們還需要在窗口中擺放各種圖形界面對象,也就是說要布局.布局的原理在前面介紹過,需要使用到布局容器,然后把對象按照一定的規則填進去.下面一個例子中演示了大部分我們需要用到的容器.我給出了很詳細的注釋,幫助我以后一旦忘了Java的語法后,可以迅速的尋找失去的記憶.file://布局范例file://j2sdk1.4.1下編譯通過import java.awt.*;import java.applet.*;public class Layout extends Frame{ Panel fnames,styles;//兩個字體按鈕放到fnames這個Panel中,三個風格按鈕放到styles這個Panel中 Button sans,serif; Button bold,bigger,smaller;//定義兩個字體按鈕,三個風格按鈕 SampleCanvas sample;//定義重載后的畫布對象 String fName=new String('SansSerif'); int fBold=0; int fSize=12; public Layout(){ super('A Memo of Layout'); setFont(new Font('Sans',Font.BOLD,12)); setLayout(new BorderLayout());//設置BorderLayout布局,該方式可安排五個元素 file://方位為東西南北中file://下面的程序為設置底部即南邊的兩個按鈕 fnames=new Panel(); fnames.setLayout(new GridLayout(1,2,5,10));//為panel設置GridLayout布局 file://該布局為網格布局 file://四個參數分別為 file://行數,列數,水平間隔(像素),垂直間隔(像素) sans=new Button('Sans Serif'); fnames.add(sans); serif=new Button('Sans Serif'); fnames.add(serif); file://分別添加兩個按鈕 add(fnames,'South'); file://將Panel列入BorderLayout布局中file://下面的程序為設置左部即西邊的三個按鈕 styles=new Panel(); styles.setLayout(new GridLayout(3,1,10,5)); bold=new Button('Bold'); styles.add(bold); bigger=new Button('bigger'); styles.add(bigger); smaller=new Button('Smaller'); styles.add(smaller); add(styles,'West'); sample=new SampleCanvas(); add(sample,'Center'); setSize(200,200);//這句話別掉羅// setVisible(true); } public void start(){ show(); } public static void main(String[] args)//初始化 { Layout MainFrame=new Layout(); MainFrame.start(); } class SampleCanvas extends Canvas { String message; public SampleCanvas() file://類的構造函數 { rewrite('SanSerif'); file://只在創建對象的時候執行,java不支持析構函數 } public void rewrite(String s) { setFont(new Font(fName,fBold,fSize)); message='This font is'+fName; repaint(); } public void paint(Graphics g) { g.drawString(message,10,50); } }} (1月28日)在網絡版的俄羅斯方塊程序中,應該包含有以下幾個類:1.MainFrame:主界面類,從Frame繼承,基本定義及類中方法功能如下class MainFrame extends Frame{ public MainFrame(){//初始化工作,主要是給對象(按鈕,畫布等)布局 } public boolean keyDown(Event e,int key){//處理鍵盤操作 } public boolean action(Event e,Object arg){//處理鼠標操作 } public void start(){//看前幾天筆記 show(); } public static void main(String args[]) throws IOException{ MainFrame app; app=new MainFrame(); app.start(); }}2.MainCanvas類.該畫布對象將完成所有與方塊有關的邏輯操作,從Canvas類繼承3.Block類,即方塊類.該類存有方塊的形狀的信息(一個多維數組)等等,該類將與MainCanvas類相輔相成.實際上也是可以將Block和MainCanvas做成一個類的,在我原來的C++版本中就是這樣的.但是,從面向對象的觀點來考慮,分成兩個類比較合適.4.ClientThread類,即客戶端的線程類5.ServerThread類,即服務器端的線程類ServerThread和ClientThread負責網絡同步的操作分析到這一部工作就基本上完成了.我決定放棄具體實現網絡版俄羅斯方塊的計劃,因為重復我曾經十分熟悉的思路是一件十分無趣的事情.我準備將目標鎖定在基于Java Applet的電子白板的實現上.相關的研究我會放到年后的另一個系列當中.歷時半個月的菜鳥筆記終于結束了.15天對于任何一門語言的入門都已經足夠,畢竟語言只是體現設計思想的工具,對于任何一種工具的熟悉和使用都不應該花費太多時間.如何用工具打造精美的藝術品才是應該時常在腦海中思索的.在Java入門的過程當中,有三本書給了我不少的幫助.第一本是機械工業出版社的,由一個英國人撰寫的.書中語言條理清楚,深入淺出,兩天時間就完全可以讓你初步掌握Java的基礎.給我的感覺,國外人寫最基礎的和最深奧的技術類教材都很有一手.第二本是譚浩強主編的,名副其實的入門級參考書,對初學者來說,內容比較齊全.最后一本是chm格式的Think in Java,幫助我更加深入的了解Java,尤其是線程和同步方面的內容.另外,我曾經舉過的所有關于Socket的范例都源自于網上下的一套如何用java編寫Socket程序的教材.這套教材也非常實用.來自:CDSN Java, java, J2SE, j2se, J2EE, j2ee, J2ME, j2me, ejb, ejb3, JBOSS, jboss, spring, hibernate, jdo, struts, webwork, ajax, AJAX, mysql, MySQL, Oracle, Weblogic, Websphere, scjp, scjd
標簽: Java
相關文章:
主站蜘蛛池模板: 砍排机-锯骨机-冻肉切丁机-熟肉切片机-预制菜生产线一站式服务厂商 - 广州市祥九瑞盈机械设备有限公司 | KBX-220倾斜开关|KBW-220P/L跑偏开关|拉绳开关|DHJY-I隔爆打滑开关|溜槽堵塞开关|欠速开关|声光报警器-山东卓信有限公司 | 合肥废气治理设备_安徽除尘设备_工业废气处理设备厂家-盈凯环保 合肥防火门窗/隔断_合肥防火卷帘门厂家_安徽耐火窗_良万消防设备有限公司 | 钢化玻璃膜|手机钢化膜|钢化膜厂家|手机保护膜-【东莞市大象电子科技有限公司】 | 艺术涂料_进口艺术涂料_艺术涂料加盟_艺术涂料十大品牌 -英国蒙太奇艺术涂料 | 北京网站建设公司_北京网站制作公司_北京网站设计公司-北京爱品特网站建站公司 | 手机游戏_热门软件app下载_好玩的安卓游戏下载基地-吾爱下载站 | 挨踢网-大家的导航!| 安徽合肥格力空调专卖店_格力中央空调_格力空调总经销公司代理-皖格制冷设备 | 蓝米云-专注于高性价比香港/美国VPS云服务器及海外公益型免费虚拟主机 | 半自动预灌装机,卡式瓶灌装机,注射器灌装机,给药器灌装机,大输液灌装机,西林瓶灌装机-长沙一星制药机械有限公司 | 有机废气处理-rto焚烧炉-催化燃烧设备-VOC冷凝回收装置-三梯环境 | 工装定制/做厂家/公司_工装订做/制价格/费用-北京圣达信工装 | 杭州厂房降温,车间降温设备,车间通风降温,厂房降温方案,杭州嘉友实业爽风品牌 | 苏州伊诺尔拆除公司_专业酒店厂房拆除_商场学校拆除_办公楼房屋拆除_家工装拆除拆旧 | 铁素体测量仪/检测仪/铁素体含量测试仪-苏州圣光仪器有限公司 | 扬尘监测_扬尘监测系统_带证扬尘监测设备 - 郑州港迪科技有限公司 | 无线遥控更衣吊篮_IC卡更衣吊篮_电动更衣吊篮配件_煤矿更衣吊篮-力得电子 | 山东钢格板|栅格板生产厂家供应商-日照森亿钢格板有限公司 | 「安徽双凯」自动售货机-无人售货机-成人用品-自动饮料食品零食售货机 | 锯边机,自动锯边机,双面涂胶机-建业顺达机械有限公司 | 众品家具网-家具品牌招商_家具代理加盟_家具门户的首选网络媒体。 | 行星搅拌机,双行星搅拌机,动力混合机,无锡米克斯行星搅拌机生产厂家 | 卡诺亚轻高定官网_卧室系统_整家定制_定制家居_高端定制_全屋定制加盟_定制家具加盟_定制衣柜加盟 | 济南玻璃安装_济南玻璃门_济南感应门_济南玻璃隔断_济南玻璃门维修_济南镜片安装_济南肯德基门_济南高隔间-济南凯轩鹏宇玻璃有限公司 | 恒温油槽-恒温水槽-低温恒温槽厂家-宁波科麦仪器有限公司 | 耐火浇注料-喷涂料-浇注料生产厂家_郑州市元领耐火材料有限公司 耐力板-PC阳光板-PC板-PC耐力板 - 嘉兴赢创实业有限公司 | 台湾阳明固态继电器-奥托尼克斯光电传感器-接近开关-温控器-光纤传感器-编码器一级代理商江苏用之宜电气 | 河南膏药贴牌-膏药代加工-膏药oem厂家-洛阳今世康医药科技有限公司 | 百度爱采购运营研究社社群-店铺托管-爱采购代运营-良言多米网络公司 | 耐腐蚀泵,耐腐蚀真空泵,玻璃钢真空泵-淄博华舜耐腐蚀真空泵有限公司 | 防潮防水通风密闭门源头实力厂家 - 北京酷思帝克门窗 | 细胞染色-流式双标-试剂盒免费代做-上海研谨生物科技有限公司 | 不锈钢搅拌罐_高速搅拌罐厂家-无锡市凡格德化工装备科技有限公司 | SOUNDWELL 编码器|电位器|旋转编码器|可调电位器|编码开关厂家-广东升威电子制品有限公司 | 薄壁轴承-等截面薄壁轴承生产厂家-洛阳薄壁精密轴承有限公司 | 优秀的临床医学知识库,临床知识库,医疗知识库,满足电子病历四级要求,免费试用 | 仿真植物|仿真树|仿真花|假树|植物墙 - 广州天昆仿真植物有限公司 | 纯化水设备-EDI-制药-实验室-二级反渗透-高纯水|超纯水设备 | 上海公司注册-代理记账-招投标审计-上海昆仑扇财税咨询有限公司 上海冠顶工业设备有限公司-隧道炉,烘箱,UV固化机,涂装设备,高温炉,工业机器人生产厂家 | RS系列电阻器,RK_RJ启动调整电阻器,RQ_RZ电阻器-上海永上电器有限公司 |