这种糟糕的设计选择使得那些拥护Java“一次编写,到处运行 (write once, run anywhere)”信条的程序员们过得并不舒畅,因为AWT并不能保证他们的应用在各种平台上表现得有多相似。
一个AWT应用可能在Windows上表现很好可是到了Macintosh上几乎不能使用,或者正好相反。
在90年代,程序员中流传着一个笑话:Java的真正信条是“一次编写,到处测试 (write once, test everywhere)”。
导致这种糟糕局面的一个可能原因据说是AWT从概念产生到完成实现只用了一个月。
1 package TomAwt; 2 3 4 import java.applet.Applet; 5 import java.awt.*; 6 import java.awt.event.*; 7 public class TomAwt_08 extends Applet implements ItemListener{ 8 TextArea ta=new TextArea(6,30); 9 String[] city={"北京","上海","天津","济南","青岛"}; 10 Checkbox cb[]=new Checkbox[5]; 11 public void init(){ 12 add(new Label("你选择的城市是: ")); 13 add(ta); 14 add(new Label("请选择你喜爱的城市: ")); 15 for(int i=0;i<5;i++){ 16 cb[i]=new Checkbox(city[i]); 17 add(cb[i]); 18 //add ItemListener 19 cb[i].addItemListener(this); 20 } 21 } 22 //implementation of itemStateChanged method 23 public void itemStateChanged(ItemEvent e){ 24 ta.append(e.getItem()+" "); 25 } 26 }