下列程序使用CardLayout管理了2张卡片,每张都是一个Panel,每个Panel有一个Button,单击按钮,显示下一张卡片中的内容。请将程序补充完整。
注意:不改动程序结构,不得增行或删行。
import java.awt.*;
import java.awt.event.*;
public class ex3 implements______
private Panel p1,p2;
private Button btn1,btn2;
private Frame frm;
private CardLayout cl;
public static void main(String[] args)
ex3 tt=new ex3();
tt.method();
public void method()
Frm=new Frame("CardLayout");
Cl=new CardLayout();
btn1=new Button("Card1");
btn2=new Button("Card2");
pl=new Panel();
p2=new Panel();
p1.add(btn1);
btn1.addActionListener(this);
p2.add(btn2);
______
frm.SetLayout(cl);
frm.add(pl,"Layer1");
frm.add(pl,"Layer1");
frm.SetSize200,200);
frm.SetVisible(true);
public void actionPerformed(ActionEvent ae)
______
参考答案:ActionListener
btn2.addActionListener(this);
cl.previous(frm);
解析:[讲解] 本题综合考查了对图形用户界面和事件处理的掌握。按钮可以引发动作事件, 当用户单击一个按钮时就引发了一个动作事件,希望相应按钮引发的动作事件的程序必须把按钮注册给实现了ActionListener接口的动作事件监听者。因此,第1空应填入的是ActionListener。第2空的功能是将btn2注册给当前的监听者。因此,第2空应填入的是btn2.addActionListener(this);。第3空需要填入的是响应鼠标事件的处理代码,当单击鼠标时,要显示下一张卡片中的内容,则需要调用next(Container parent)或者previous(Container parent)方法。因此,第3空应填入的是cl.next(frm);或cl.previous(frm);。