发表于:2011/8/17 14:24:31
#0楼
列表框的创建和事件响应
/** TestList.java */
import java.applet.*;
import java.awt.*;
import java.awt.event.*;
public class TestList extends Applet implements ActionListener,ItemListener
{
List MyList;
Label result1;
Label result2;
public void init()
{
result1 = new Label("全控型器件是(双击选取): ");
result2 = new Label("半控型器件是(单击选取): ");
MyList = new List(6,true);
MyList.add("普通晶闸管");
MyList.add("逆导晶闸管");
MyList.add("双向晶闸管");
MyList.add("快速晶闸管");
MyList.add("光控晶闸管");
MyList.add("电力晶体管");
add(MyList);
add(result1);
add(result2);
MyList.addActionListener(this);
MyList.addItemListener(this);
}
public void actionPerformed(ActionEvent e)
{
if(e.getSource()==MyList)
result1.setText("全控型器件是:"+e.getActionCommand());
}
public void itemStateChanged(ItemEvent e)
{
List temp;
String sList[];
String mgr = new String("");
if(e.getItemSelectable() instanceof List)
{
temp = (List)(e.getItemSelectable());
sList = temp.getSelectedItems();
for(int i=0;i<sList.length;i++)
mgr = mgr + sList[i] + " ";
result2.setText("半控型器件是:"+mgr);
//showStatus(mgr);
}
}
} //*~
/**TestList.html */
<HTML>
<BODY>
<APPLET code = "TestList.class" height=150 width = 330>
</APPLET>
</BODY>
</HTML>
//*~
运行结果为:
图1 未选取时的窗口界面
当用户双击列表框中电力晶体管选项后,先后产生了两种事件的响应。一个是单击的选项事件的响应,另一个是双击的动作事件的响应。如图2所示。
图2 双击列表框中电力晶体管选项后的窗口界面
但是,电力晶体管是全控型器件,并不是半控型器件,所以,用户可以再通过单击来取消,如图3所示。
图3 用单击可以取消已经选中的选项
在没有选取的状态下,用户可以通过单击选中要选的选项,如图4所示。
图4 用户单击选中了列表框中的前五项
由此可知,列表框中的双击事件并不能覆盖单击事件,须特别注意。