|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
Java的桌面程序开发在java程序员里通常叫swing开发,主要用的swing包里的类开发的,也就是通常说的c/s架构开发成绩
sys.put("proxyHost","myHTTP.proxyserver.com");
sys.put("proxyPort","80");
System.setProperties(sys);
u=newURL(website);
connect=(HttpURLConnection)u.openConnection();
.....
问:Swing组件JList的列表数据修正了,怎样关照JList改动显现?
答:
JList组件有一个独自的显现形式ListModel来暗示JList的显现数据.
JList创立今后,JList数据元素的值及数据元素的数目能够静态地改动.
JList在它的数据形式ListModel中察看数据的改动.因而,一个ListModel的准确完成应该在每次数据产生改动时,关照事务的监听者.
当利用机关函数JList(Object[])创立一个JList的实例时,体系将主动创立一个DefaultListModel的实例来存储JList的显现数据,能够挪用DefaultListModel中界说的烦琐办法来静态地修正JList的数据,如removeElementAt(index),addElement(Object)等.DefaultListModel在修正数据的同时,将关照JList关于数据的改动.
问:
在Javaapplet中怎样完成一个形式对话框?
答:
在Javaapplet中完成形式对话框的关头就是在创立一个对话框的时分要为该对话框指定一个准确的父窗口.由于Applet是Panel类的子类,不能够作为对话框的父窗口,以是起首要取得applet地点的窗口,作为形式对话框的父窗口.样例代码以下:
.....
Dialogd=newDialog(getParentWindow(comp),title);
//comp为applet上的恣意一个组件
....
publicvoidgetParentWindow(ComponentcompOnApplet,Stringtitle){
Containerc=compOnApplet.getParent();
while(c!=null){
if(cinstanceofFrame)
return(Frame)c;
c=c.getParent();
}
returnnull;
}
问:在Javaapplet中怎样显现别的一个HTML页面?
答:
经由过程java.applet.Applet.getAppletContext()办法能够取得与该applet相干的AppletContext,AppletContext.showDocument(URL)办法就能够使applet地点的扫瞄器显现别的一个网页.
问:
用JDK完成的署名applet,能否在Netscape或IE中运转?
答:
用JDK完成的署名applet,不成以在Netscape或IE中运转,可是能够在Hotjava扫瞄器中运转.
分歧的扫瞄器供应了分歧的署名applet机制,如Netscape供应了zigbert工具和CapabilityAPI,而IE则必要利用CAB文件.可是,不管是Netscape工具发生的署名applet,仍是用IE发生的署名applet,都不成以在别的的扫瞄器中运转.
假如要使JDK发生的署名applet可以在Netscape或IE中运转,办理办法是在Netscape或IE中安装JavaPlugin,则用JDK完成的署名applet就能够在这两种扫瞄器中运转.
问:
用JNI手艺能够从Java使用中挪用C程序库,可是怎样使该C程序库能够挪用别的的C程序库?
答:
假如一个被Java挪用的C程序库C1仍必要挪用别的一个C程序库C2,那末在编译C1的时分应该连接程序库C2,步骤以下(Solaris平台):
编写挪用C库的Java文件,并编译.
javacjava文件名
发生C程序头文件
javah-jnijava文件名(不带后缀.java)
编写被Java挪用的C程序C1.c,和被C1挪用的C2.c,并编译.
cc-G-Iinclude路径名C2.c-olibC2.so
cc-G-Iinclude路径名-lC2C1.c-olibC1.so
设置情况变量
setenvLD_LIBRARY_PATHlibC1.so,libC2.so地点路径
:
运转java使用
问:
在Java言语中,怎样列出PC机文件体系中的一切驱动器名?
答:
在Java2版本中,java.io包中的File类新增添了办法listRoots()能够完成这一功效.
问:
为何Runtime.exec("ls")没有任何输入?
答:
挪用Runtime.exec办法将发生一个当地的历程,并前往一个Process子类的实例,该实例可用于把持历程或获得历程的相干信息.因为挪用Runtime.exec办法所创立的子历程没有本人的终端或把持台,因而该子历程的尺度IO(如stdin,stdou,stderr)都经由过程Process.getOutputStream(),Process.getInputStream(),Process.getErrorStream()办法重定向给它的父历程了.用户必要用这些stream来向子历程输出数据或猎取子历程的输入.以是准确实行Runtime.exec("ls")的例程以下:
try
{
process=Runtime.getRuntime().exec(command);
InputStreamReaderir=newInputStreamReader(process.getInputStream());
LineNumberReaderinput=newLineNumberReader(ir);
Stringline;
while((line=input.readLine())!=null)
System.out.println(line);
}
catch(java.io.IOExceptione){
System.err.println("IOException"+e.getMessage());
}
问:
怎样发生署名applet,以使applet可以会见当地资本?
答:
在jdk1.1中,可使用javakey命令来发生公钥,私钥,证书和署名的jar文件,具体材料请参考:http://java.sun.com/security/usingJavakey.html而java2对署名机制做了对照年夜的改善,同意用户更天真地设置平安权限.Java2供应了三个工具:keytool,policytool和jarsigner来完成署名applet.比方,Joe编写了一个署名applet:SignedApplet.java,那末发生一个复杂的署名applet的历程以下:
//发生密钥,密钥别号为joe,口令为sign12,寄存在密钥库joestore中
keytool-genkey-aliasjoe-keypasssign12-keystorejoestore
//将SignedApplet.class及相干文件打包成jar文件
jarcvfSignedAppletDemo.jar
//使用keytool天生的自署名的证书发生署名applet(jar文件)
jarsigner-keystorejoestore-signedjarjoe.jarSignedAppletDemo.jarjoe
//将自署名证书从keystore中输入到文件
keytool-export-keystorejoestore-aliasjoe-filejoe.cer
而关于署名applet的承受方Susan,必要经由过程以下步骤来平安地实行
Joe编写的署名applet:
//失掉Joe的证书并将之读进到密钥库中susanstore中
keytool-import-aliasjoe-filejoe.cer-keystoresusanstore
//运转policytool发生满意Susan请求的policy文件
policytool
//用appletviewer运转之,或在扫瞄器中安装javaplugin来运转之.
关于署名applet在JavaPlugin中的部署请参考以下网页:
http://java.sun.com/security/signExample12/
注:以上的例子为复杂起见,利用了keytool发生的自署名证书.实在,用户也能够
利用keytool-certreq向贸易CA中央请求电子证书.
问:
若经由过程ObjectOutputStream向一个文件中屡次以追加体例写进object,为何用ObjectInputStream读取这些object时会发生StreamCorruptedException?
答:
利用缺省的serializetion的完成时,一个ObjectOutputStream的机关和一个ObjectInputStream的机关必需逐一对应.ObjectOutputStream的机关函数会向输入流中写进一个标识头,而ObjectInputStream会起首读进这个标识头.因而,屡次以追加体例向一个文件中写进object时,该文件将会包括多个标识头.以是用ObjectInputStream来deserialize这个ObjectOutputStream时,将发生StreamCorruptedException.一种办理办法是能够机关一个ObjectOutputStream的子类,并掩盖writeStreamHeader()办法.被掩盖后的writeStreamHeader()办法应判别是不是为初次向文件中写进object,羰?则挪用super.writeStreamHeader();若否,即以追加体例写进object时,则应挪用ObjectOutputStream.reset()办法.
问:
对象的序列化(serialization)类是面向流的,应怎样将对象写进到随机存取文件中?
答:
今朝,没有间接的办法能够将对象写进到随机存取文件中.
可是可使用ByteArray输出/输入流作为中介,来向随机存取文件中写进或从随机存取文件中读出字节,而且能够使用字撙节来创立对象输出/输入流,以用于读写对象.必要注重的是在字撙节中要包括一个完全的对象,不然读写对象时将产生毛病.比方,java.io.ByteArrayOutputStream可用于猎取ObjectOutputStream的字撙节,从中可失掉byte数组并可将之写进到随机存取文件中.相反,我们能够从随机存取文件中读出字节数组,使用它可机关ByteArrayInputStream,进而机关出ObjectInputStream,以读取对象.
问:
运转RMI使用时,可不成以不手工启动名字服务rmiregistry,而是从程序中启动之?
答:
能够.java.rmi包中供应了类java.rmi.registry.LocateRegistry,用于猎取名字服务或创立名字服务.挪用LocateRegistry.createRegistry(intport)办法能够在某一特定端口创立名字服务,从而用户无需再手工启动rmiregistry.别的,LocateRegistry.getRegistry(Stringhost,intport)办法可用于猎取名字服务.
问:
利用类PrintJob举行打印操纵时,应怎样设置打印机名等打印属性?
答:
利用以下办法能够取得PrintJob的实例用于把持打印操纵:
Toolkit.getPrintJob(Framef,Stringjobtitle,Propertiesprop)
那末关于打印属性的设置能够经由过程对prop的属性设置来完成,打印属性包含:
awt.print.destination:能够是"printer"或"file"
awt.print.printer:打印机名
awt.print.fileName:打印文件名
awt.print.numCopies:打印份数
awt.print.options:打印命令的打印选项
awt.print.orientation:打印偏向,能够是"portrait"或"landscape"
awt.print.paperSize:纸张巨细,能够是"letter","legal","executive"或"a4"
问:
在JDK1.1中Thread类界说了suspend()和resume()办法,可是在JDK1.2中已过期,应利用甚么办法来替换之?
答:
Thread.suspend自己易于发生逝世锁.假如一个方针线程对某一关头体系资本举行了加锁操纵,然后该线程被suspend,那末除非该线程被resume,不然别的线程都将没法会见该体系资本.假如别的一个线程将挪用resume,使该线程持续运转,而在此之前,它也必要会见这一体系资本,则将发生逝世锁.
因而,在Java2中,对照盛行的体例是界说线程的形态变量,并使方针线程轮询该形态变量,当形态为吊挂形态时,可使用wait()办法使的地方于守候形态.一旦必要该线程持续运转,别的线程会挪用notify()办法来关照它.
问:
利用JDBC编程,应怎样把持了局集ResultSet的指针,使之可以高低挪动,和挪动到了局集的第一行和最初一行?
答:
在JDK1.1中,ResultSet类中只界说了next()办法撑持数据指针的下移.但在Java2中,ResultSet类增添了以下办法撑持数据指针的挪动,包含:
ResultSet.first():将数据指针移到了局集的第一行
ResultSet.last():将数据指针移到了局集的最初一行
ResultSet.previous():将数据指针上移一行
以上的办法界说在JDBC2.0的标准中,一切撑持JDBC2.0的JDBC驱动程序都能够撑持上述办法.今朝Intersolv和OpenLink等JDBC驱动程序厂商均有产物撑持JDBC2.0.
问:
哪几种WebServer撑持Servlet?怎样使IIS撑持Servlet?
答:
今朝,撑持Servlet的服务器端产物次要有:Sun公司的JavaWebServer,LotusDominoGoWebServer,BEAweblogicTengahServer,Jigsaw,NetForge,AcmeServer和MotBaysJetty等.
别的,一些第三方厂商也开辟了Servletengine,以使别的WebServer(如NetscapeWebServer,IIS等)可以运转Servlet,如LiveSoftware的Jrun(http://www.livesoftware.com/products/jrun/)等.
问:
怎样在Java使用中将图象存储到图象文件中?
答:
JavaAdvancedImagingAPI(包括在JavaMediaAPI中)同意在Java使用中实行庞大的,高功能的图象处置.JAIAPI供应了存储图象的才能.今朝,JAIAPI撑持以下几种图象文件格局:BMP,JEPG,PNG,PNM,TIFF.上面给出了将图象存储到BMP文件的一段代码:
OutputStreamos=newFileOutputStream(fileToWriteTo);
BMPEncodeParamparam=newBMPEncodeParam();
ImageEncoderenc=ImageCodec.createImageEncoder("BMP",os,param);
enc.encode(img);
os.close();
有关存储图象文件的编程指南请参考以下网页:
http://java.sun.com/products/java-m...pers/jai-guide/
问:
怎样用Java言语向串口读写数据?font>
答:
Sun公司的JavaCommunicationAPI2.0可用于读写串口,它撑持RS232串口和IEEE1284并口,供应了一种与平台有关的串/并口通讯机制.
由于这些智能化家电的市场需求没有预期的高,Sun放弃了该项计划。就在Oak几近失败之时,随着互联网的发展,Sun看到了Oak在计算机网络上的广阔应用前景,于是改造了Oak, |
|