问题 填空题

请完善程序(程序文件名:Java_3.java)并进行调试。请在下画线处填入正确内容,然后删除下画线。请勿删除注释行和其他已有的语句内容。
[题目要求]
生成下面左边图形界面,单击图中的New按钮,弹出如右图所示的对话框。


源程序:
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class Java_3
 public static void main(String[] args)
  MulticastFrame frame=new MulticastFrame();
  frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
  frame.show();
 

class MulticastFrame extends JFrame
 public MulticastFrame()
  setTitle("MulticastTest");
  setSize(WIDTH,HEIGHT);
  MulticastPanel panel=new MulticastPanel();
  Container contentPane=getContentPane();
  contentPane.add( (1) );
 
 public static final int WIDTH=300;
 public static final int HEIGHT=200;

class MulticastPanel extends JPanel
 public MulticastPanel()
  JButton newButton=new JButton("New");
  add(newButton);
  ActionListener newListener=new ActionListener()
    public void actionPerformed(ActionEvent event)
      makeNewFrame();
    
  ;
  newButton.addActionListener(newListener);
  closeAllButton=new JButton("Close all");
  add(closeAllButton);

private void makeNewFrame()
  final BlankFrame frame=new BlankFrame();
  frame.show();
  ActionListener closeAllListener=new ActionListener()
    public void actionPerformed(ActionEvent event)
      frame. (2) (); //使窗口隐藏或消除
    
  ;
  closeAllButton.addActionListener( (3) );
 
 private JButton closeAllButton;

Class BlankFrame extends JFrame
 public BlankFrame()
   (4) ++;
  setTitle("Frame"+counter);
  setSize(WIDTH,HEIGHT);
  setLocation(SPACING*counter,SPACING*counter);
 
 public static final int WIDTH=200;
 public static final int HEIGHT=150;
 public static final int SPACING=30;
 private static int counter=0;

答案

参考答案:counter

解析: 通过下面的程序可以看出新的窗口的标题为Frame和数字,数字是自增的,所以自增的变量名称为counter。
[程序解析] 程序在窗口中用按钮新建窗口,并且可以通过按钮关闭窗口。本程序采用的是swing类,Swing构件和AWT构件不同,Swing构件不能直接添加到顶层容器中,它必须添加到一个Swing顶层容器相关联的内容面板上。对JFrame添加构件有两种方式:①用getContentPane()方法获得JFrame的内容面板,再对其加入构件,Java上机考试中经常采用这种方式,而且也是一个考点。本程序就是采用的这种方法。②建立一个JPanel或JDesktopPane之类的中间容器,把构件添加到容器中,再用setContentPane()方法把该容器置为JFrame的内容面板。

单项选择题
单项选择题