从Delphi到Java (2)(200分)

C

cAkk

Unregistered / Unconfirmed
GUEST, unregistred user!
1.(50分)怎样在Java的方法里面实现类似delphi的Var参数?
2。(100分)怎样在画布上用任意字体drawString?比如用隶书写字?
3.(50分)我想使用swing这个类库,但import com.sun.swing.*却出错,说没有这个库。
就是说这些东西其实没什么用,因为你不可能要求浏览者安装swing,对不对?
 
1 . 如果是对象作为方法参数的话, 因为传递的实际上是对象的引用,因此也就相当于
var 参数。
 
如果不是对象呢?比如一个int ?
 
integer对象
 
好,继续2,3题
 
2)任意字体?请考虑一下java 的可移植性,不知unix下怎么new一个“隶书”字体啊 :)
所以java在最初只支持几种常见的字体。
 
1.关于对象传递恐怕不用说了。
至于基本类型,大家的理解有错。所有基本类型的包装类如int->Integer都是不会变的。
就算你用Integer作为函数参数,也是不能实现Var参数。不信的话你可以试试。:)
对基本类型要实现Var参数,需要构造一个新类,如将int包装类Int。DEMO如下:
class Int {
int n;
Int(int x) { n = x;
}
public String toString() {
return Integer.toString(n);
}
}
public class swapdemo{
static void swap(Int i1,Int i2){
int temp;
temp=i1.n;
i1.n=i2.n;
i2.n=temp;
System.out.println("in swap i1="+i1+";
i2="+i2);
}
public static void main(String[] args){
Int i1=new Int(3);
Int i2=new Int(6);
System.out.println("before swap i1="+i1+";
i2="+i2);
swap(i1,i2);
System.out.println("after swap i1="+i1+";
i2="+i2);
}}
2。对于applet的字体,很多浏览器都没有统一,也没有对中文字体的支持功能。
下面列出各IE、Netscape和appletview中所支持的几样字体:
IE: Dialog、Helvetica、TimesRoman、Courier、DialogInput、ZapfDingbats(共6种)
NC: Dialog、Helvetica、TimesRoman、Courier、DialogInput、ZapfDingbats、
SansSerif、Serif、Monospaced(共9种)
av: Dialog、Helvetica、TimesRoman、Courier、DialogInput、SansSerif?
?nbsp;
Serif、Monospaced(共8种)
3。要用swing,就要用plugin.关于plugin 的使用论坛里讨论得太多了,找找吧。

 
3.(50分)我想使用swing这个类库,但import com.sun.swing.*却出错,说没有这个库。
就是说这些东西其实没什么用,因为你不可能要求浏览者安装swing,对不对?
你说的包可能是: com.sun.java.swing.*;
里面包含三种UI。
你实际需要import的可能是: javax.swing.*;
对于在Applet中用swing,我也曾经说过没用,不过现在也在试着用。有两点心得
1。可以在页面中同时使用〈OBJECT〉和〈EMBED〉,这样ie和netscape都可以访问
2。如果ie没有安装过plugin,可能会去sun上面下载安装,那十分讨厌。现在我正在
试验把下载路径改为自己的web服务器,那样速度会快一点,说不定能够接受。
 

3,import com.sun.swing.* 是JDK1.1.x中用的,现在的java2也就是jdk1.2以上版本将
swing 放到了javax包中所以应该是import javax.swing.*;
 
JJams_king:下载路径如何改成自己的服务器?实验成功了告诉我一下!谢谢先!
 
2)但在application里是可以引用在本地注册的字体的,如宋体等。
 
cAkk:请继续请继续请继续或结束问题。
 
老是提一些蠢问题,就想快速地从人家那儿骗到知识,自己从不想好好看书。
奉劝你以后还是先仔细研究一下后再提些有意义的问题。也不知你的Delphi功底到底任何,
整天的Delphi,Delphi...不离口。
 
ninghu:不要这样啊 如果相互交换彼此熟悉的东西 不是大家都可以提高吗
 
对问题一的补充:
如g633所说可以把int变量封装在一个Integer对象里,
还可以用这种办法
int x[1];
x[0]=10;
myFunc(x[0]);
 
cAkk: 请继续或结束问题
 
ninghu: 是不是你回答不上来的就不是有意义的问题?你真无聊。
有本事就把你的知识共享一下,别除了会骂人别的什么都不会。
请继续讨论。
 
1):如果是基本类型(如int)是不能实现类似Delphi的var功能的,Java传进去都是
一个拷贝;而传如的参数是一个类的化默认就是Var形式的。
2):g
3):一般版本浏览器只支持低版本的JDK,像Swing这种重量级的东西最好不要在Applet
中用。
 
就这样吧。多谢
 
顶部