请完成下列Java程序:用一个边框布局来安排一个工具栏和一个卡片布局。工具栏可浮动,包括两个按钮,一个向前一个向后控制卡片的显示;卡片布局包括3张卡片,分别标识为card1、card2、card3。
注意;请勿改动main()主方法和其他已有语句内容,仅在下划线处填入适当的语句。
源程序代码文件清单如下:
import jav
- a.awt.*;
import java.awt.event.*;
import javax.swing.*;
import javax.swing.border.LineBorder;
public class ex20_2
private static CardLayout cl=new CardLayout();
private static JPanel cp=new JPanel();
public static void main(String args[])
JFrame jf=new JFrame();
jf.setTitle("ex20_2");
Container c=jf.getContentPane();
JToolBar jtb=new JToolBar();
JButton btnNext=new JButton(new Imagelcon("next.gif"));
JButton btnPre=new JButton(new ImageIcon("back.gif"));
jt - b.add(btnPre);
jtb.add(btnNext);
cp.setLayout(c1);
Dimension dim=new Dimension(150,80);
cp.setPreferredSize(dim);
cp.setBorder(new LineBorder(Color.BLACK));
cp.add(new JLabel("card1",JLabel.CENTER),"card1");
cp.add(new JLabel("card2",JLabel.CENTER),"card2");
cp.add(new JLabel("card3",JLabel.CENTER),"card3"); - c.add(jtb,BorderLayout.NORTH);c.add(cp,BorderLayout.CENTER);
ActionListener al=new ActionResponse();
______;
______;
if.addWindowListener(new WindowAdapter()
public void windowClosing(WindowEvent we)
System.exit(0);
);
jf.pack();
jf.setVisible(true);
static class ActionResponse implements ActionListener
public void actionPerformed(ActionEvent ae)
if(ae.getActionCommand().equals("next"))
c1.next(cp);
else
c1.previous(cp);
参考答案:btnNext.addActionListener(al)
btnPre.addActionListener(al)
解析: 本题主要考查工具栏和卡片布局的基本使用方法。解题关键是熟悉工具栏的设计和卡片布局的管理,熟悉事件处理机制,会制作图像按钮,会制作自己的事件监听器类。本题中,第1个空和第2个空都是需要填入注册监听器的语句,这里向前和向后两个按钮共用一个监听器,此监听器对象负责判断和处理相应的操作。