爱飞 发表于 2015-1-18 11:44:30

JAVA编程:java图象扫瞄器

还得说上一点,就java本质而言,是面相对象的,但是你有没有发现,java也不全是,比如说基本类型,int,那他就是整型而不是对象,转换类型是还得借助包装类。扫瞄器//显现对象为jpg,gifcanvas中绘图利用doublebuffering,利用scrollbar显现,显现地区流动了,能够扩大成依照canvas的巨细来显现的形式,由于canvas放在center地位。importjava.awt.*;importjava.awt.event.*;importjava.awt.image.*;importjavax.swing.*;classFrameextextendsFrame{}publicclassImagesextendsFrameimplementsActionListener,WindowListener,WindowStateListener{//Frameextfr=newFrameext();LabelLabel1=newLabel("",Label.LEFT);//willshowthefilenameButtonButton1=newButton("openfile");intxpos,ypos;intimageHeight;intw,h;Imageoffimg,bg;Graphicsoffg;booleanfirst=true;//extendsCanvas.Thiscodewilluseitspaintmethod.publicMyCanvasCanvas1=newMyCanvas();staticScrollbarhorizontal,vertical;//scrollbarusedFileDialogfd=newFileDialog(this,"Open",FileDialog.LOAD);ImageImage1;publicvoidinitialize(){//System.out.println("dddddd"+this.MAXIMIZED_BOTH);//this.setLocation(0,0);//this.setSize(this.getToolkit().getScreenSize());this.setSize(600,600);this.setLocation(30,30);this.setBackground(Color.lightGray);Canvas1.setBackground(Color.white);Canvas1.setSize(580,580);//ColorChooserDialogcolorDialog=newColorChooserDialog(this,"@fff",this);this.add("North",horizontal=newScrollbar(Scrollbar.HORIZONTAL));this.add("East",vertical=newScrollbar(Scrollbar.VERTICAL));Panelpa=newPanel();pa.setBackground(Color.white);Label1.setBackground(Color.lightGray);Label1.setAlignment(Label.LEFT);pa.add(Label1);pa.add(Button1);//addlabelandbuttononpanelthis.add("South",pa);//addpanelatsouththis.add("Center",Canvas1);this.addWindowListener(this);this.addWindowStateListener(this);Button1.addActionListener(this);try{System.out.println("getsize"+Canvas1.getSize()+"getwidth"+Canvas1.getWidth()+"getheight"+Canvas1.getHeight());}catch(Exceptione){System.out.println(e.toString());}this.pack();this.show();}voidimageload(){fd.setFile("*.jpg;*.gif");//filespeicificfd.show();if(fd.getFile()==null){Label1.setText("Youhavenotchosenanyimagefilesyet");}else{Stringd=(fd.getDirectory()+fd.getFile());Image1=Toolkit.getDefaultToolkit().getImage(d);if(Image1==null){System.out.println("imageisnullofthisfile:"+d);return;}Label1.setText(d);System.out.println("imageloaded"+d);//ItisimportanttouseCanvas1astheImageObserver.MediaTrackermt=newMediaTracker(Canvas1);//hereshouldbenoticedliketheauthorsaymt.addImage(Image1,0);try{mt.waitForAll();}catch(InterruptedExceptione){System.out.println(e.toString());}w=Image1.getWidth(this);h=Image1.getHeight(this);//setwandhtheimagesheightandwidthSystem.out.println("imagewidthandheightis"+w+""+h);if(offimg!=null&&(offimg.getHeight(this)<h||offimg.getWidth(this)<w)){//shallwerecreatetheoffimgfordoublebufferingiftheimageislargerSystem.out.println("offimagewandh"+offimg.getHeight(this)+""+offimg.getWidth(this)+"w"+w+"h"+h);offimg=createImage(w,h);offg=offimg.getGraphics();}vertical.setMaximum(h-390);//hereimportantsetscrollbarsmaximum//imagesizeminus(showsizeminusinsectssizefirst),//youcandetermtheinsectsbyprogramorsimplesetthemaximumto//acertainnumber,andthenyouscrollitdownandtracewhenitreach//theboundary,thevaluedoesnotagreewiththemaximumnumberyouset//andthedifferencemaybetheinsectssizeyoushallminusfirst//vertical.setVisibleAmount((h-290)/10);//ifwetrytosetthevisibleamounttoavariable,thescrollbywillbeuncertainand//hardtocontralhorizontal.setMaximum(w-440);//horizontal.setVisibleAmount((w-390)/10);Canvas1.repaint();//imageloadedsorepaintthecanvas//Canvas1.paint();}}publicbooleanhandleEvent(Evente){//System.out.println("catched"+e);//wecanseeclearlywhateventhappenifwedontcommentthissentenceif(e.id==Event.WINDOW_DESTROY){System.exit(0);}elseif(e.targetinstanceofScrollbar){System.out.println("scollofhandleevent");if(e.target==horizontal){xpos=((Integer)e.arg).intValue();//tracethescrollvalueforimageshowlater}elseif(e.target==vertical){ypos=((Integer)e.arg).intValue();}System.out.println(""+xpos+""+ypos);//System.out.println("checkinghereeeeeeeeeeeeeee");Canvas1.repaint();}returnsuper.handleEvent(e);}publicvoidwindowStateChanged(WindowEvente){System.out.println("windowstatechanged");Canvas1.repaint();}publicvoidwindowClosing(WindowEvente){//Usethis.hide();forsubsequentformsinmultiformapplicationsSystem.exit(0);}publicvoidwindowActivated(WindowEvente){System.out.println("windowactivated");Canvas1.repaint();}publicvoidwindowClosed(WindowEvente){}publicvoidwindowDeactivated(WindowEvente){}publicvoidwindowDeiconified(WindowEvente){}publicvoidwindowIconified(WindowEvente){}publicvoidwindowOpened(WindowEvente){}publicvoidactionPerformed(ActionEventevent){System.out.println("catched2"+event);Buttonb=(Button)event.getSource();if(b==Button1){imageload();}}publicstaticvoidmain(Stringargs[]){Imagesa=newImages();a.initialize();}/*publicvoidupdate(Graphicsg){Canvas1.update(g);}publicvoidpaint(Graphicsg){Canvas1.paint(g);}*///Asimpleinnerclasstoshowthebasics.classMyCanvasextendsCanvas{publicvoidupdate(Graphicsg){System.out.println("update");if(offg!=null&&Image1!=null){offg.clearRect(50,50,500,450);offg.drawImage(Image1,50,50,500,450,xpos,ypos,450+xpos,400+ypos,this);g.drawImage(offimg,50,50,this);System.out.println("wandhis"+w+""+h+"andcountupdateis"+"offg"+offg);}}publicvoidpaint(Graphicsg){if(first){offimg=createImage(getWidth(),getHeight());offg=offimg.getGraphics();System.out.println("wandhis"+w+""+h+"andcountupdateis"+"offg"+offg);first=false;}if(offg!=null&&Image1!=null)//ifdeletethiswhenthewindowstatechange,theimagewillnotshow{//youmustscrollthebarbyhandthenitwillshowweshowtakecarewhatthefunctionofpaintwhenrepaintoffg.clearRect(50,50,500,450);offg.drawImage(Image1,50,50,500,450,xpos,ypos,450+xpos,400+ypos,this);g.drawImage(offimg,50,50,this);System.out.println("wandhis"+w+""+h+"andcountupdateis"+"offg"+offg);}System.out.println("thisispaint");}}//Endofinnerclass.}

IDE是好。java中的IDE更是百花齐放,你用jbuilder能说jbuilder赶不上vs吗?用eclipse,netbeans也很舒服啊。我就不明白“稍微差一些”那一些是从哪里差来的。

只想知道 发表于 2015-1-18 14:45:21

当然你也可以参加一些开源项目,一方面可以提高自己,另一方面也是为中国软件事业做贡献嘛!开发者在互联网上用CVS合作开发,用QQ,MSN,E-mail讨论联系,天南海北的程序员分散在各地却同时开发同一个软件,是不是很有意思呢?

透明 发表于 2015-1-30 23:32:23

你快去找一份Java的编程工作来做吧(如果是在校学生可以去做兼职啊),在实践中提高自己,那才是最快的。不过你得祈祷在公司里碰到一个高手,而且他 还愿意不厌其烦地教你,这样好象有点难哦!还有一个办法就是读开放源码的程序了。我们知道开放源码大都出自高手,他们设计合理,考虑周到,再加上有广大的程序员参与,代码的价值自然是字字珠叽,铿锵有力(对不起,偶最近《金装四大才子》看多了)。

飘灵儿 发表于 2015-2-6 16:57:26

是一种突破用户端机器环境和CPU

莫相离 发表于 2015-2-17 10:28:10

Java自面世后就非常流行,发展迅速,对C++语言形成了有力冲击。Java 技术具有卓越的通用性、高效性、平台移植性和安全性,广泛应用于个人PC、数据中心、游戏控制台

精灵巫婆 发表于 2015-3-5 19:20:24

是一种突破用户端机器环境和CPU

若相依 发表于 2015-3-12 06:12:42

《JAVA语言程序设计》或《JAVA从入门到精通》这两本书开始学,等你编程有感觉的时候也可以回看一下。《JAVA读书笔记》这本书,因为讲的代码很多,也很容易看懂,涉及到面也到位。是你学习技术巩固的好书,学完后就看看《JAVA编程思想》这本书,找找一个自己写的代码跟书上的代码有什么不一样。

不帅 发表于 2015-3-17 10:10:29

如果你学过HTML,那么事情要好办的多,如果没有,那你快去补一补HTML基础吧。其实JSP中的Java语法也不多,它更象一个脚本语言,有点象ASP。

爱飞 发表于 2015-3-17 21:10:59

在全球云计算和移动互联网的产业环境下,Java更具备了显著优势和广阔前景。

冷月葬花魂 发表于 2015-3-25 02:42:26

在全球云计算和移动互联网的产业环境下,Java更具备了显著优势和广阔前景。

山那边是海 发表于 2015-4-10 05:21:55

吧,现在很流行的Structs就是它的一种实现方式,不过Structs用起来实在是很繁,我们只要学习其精髓即可,我们完全可以设计自己的MVC结构。然后你再研究一下软件Refactoring (重构)和极限XP编程,相信你又会上一个台阶。 做完这些,你不如整理一下你的Java代码,把那些经典的程序和常见的应用整理出来,再精心打造一番,提高其重用性和可扩展性。你再找几个志同道合的朋友成立一个工作室吧

再现理想 发表于 2015-4-10 22:16:32

让你能够真正掌握接口或抽象类的应用,从而在原来的Java语言基础上跃进一步,更重要的是,设计模式反复向你强调一个宗旨:要让你的程序尽可能的可重用。

变相怪杰 发表于 2015-4-16 21:55:35

一般学编程语言都是从C语开始学的,我也不例外,但还是可能不学过程语言而直接学面向对象语言的,你是刚接触语言,还是从C开始学比较好,基础会很深点,如果你直接学习JAVA也能上手,一般大家在学语言的时候都记一些语言的关键词,常有的包和接口等。再去做逻辑代码的编写,以后的学习过程都是从逻辑代码编写中提升的,所以这方面都是经验积累的。你要开始学习就从

仓酷云 发表于 2015-4-25 16:55:35

是一种突破用户端机器环境和CPU

深爱那片海 发表于 2015-4-26 05:09:09

关于设计模式的资料,还是向大家推荐banq的网站 http://www.jdon.com/,他把GOF的23种模式以通俗易懂的方式诠释出来,纯Java描述,真是经典中的经典。

若天明 发表于 2015-4-27 16:05:45

Java 编程语言的风格十分接近C、C++语言。

蒙在股里 发表于 2015-4-29 06:15:56

另外编写和运行Java程序需要JDK(包括JRE),在sun的官方网站上有下载,thinking in java第三版用的JDK版本是1.4,现在流行的版本1.5(sun称作J2SE 5.0,汗),不过听说Bruce的TIJ第四版国外已经出来了,是专门为J2SE 5.0而写的。

再见西城 发表于 2015-5-6 22:09:34

是一种突破用户端机器环境和CPU

金色的骷髅 发表于 2015-6-17 20:57:47

所以现在应用最广泛又最好学的就是J2EE了。 J2EE又包括许多组件,如Jsp,Servlet,JavaBean,EJB,JDBC,JavaMail等。要学习起来可不是一两天的事。那么又该如何学习J2EE呢?当然Java语法得先看一看的,I/O包,Util包,Lang包你都熟悉了吗?然后再从JSP学起。
页: [1]
查看完整版本: JAVA编程:java图象扫瞄器