问题 问答题

下列程序用来显示用户要求打开的图片。在名为“读取图像”的JFrame框架中有一个单行文本框,用户可以在其中输入图片文件的文件名称,按下“浏览图片”按钮以后,新生成一个对话框,将图片显示在这个对话框中,运行结果如下图所示。请填写横线处的内容。


注意:请勿改动main()主方法和其他已有语句内容,仅在横线处填入适当语句。
import java.awt.*;
import java.awt.event.*;
import java.io.*;
import javax.swing.*;
public class Example2_9

public static void main(String[] args)

JFrame frame = new FileNameFrame("读取图像");
frame.setDefaultCloseOperation(JFrame. EXIT ON CLOSE);
frame.setSize(300, 100);
frame.show();


class FileNameFrame extends JFram implements ActionListener

JLabel inputLabel;
JTextField fileNameText;
JButton containtButton;
public FileNameFrame(String titleText)

super(titleText);
inputLabel = new Jnabel("请输入图像文件的名称");
fileNameText = new JTextField(10);
containtButton = new JButton("浏览图片");
fileNameText.addActionListener(this);
containtButton.addActionListener(this);
JPanel panel = new JPanel();
panel.add(fileNameText);
panel.add(containtButton);
Container containt = getContentPane();
containt.setLayout(new BorderLayout(3,3));
containt.add(inputLabel, BorderLayout.NORTH);
containt.add(panel, BorderLayout.CENTER);

public void actionPerformed(ActionEvent e)

String fileName = fileNameText.getText();
ImageIcon image = ______;
ImageDialog dlg = new ImageDialog(this);
dlg.setImage(image);
dlg.setTitle(fileName);
dlg.show();

class ImageDialog extends JDialog

JLabel imageLabel;
public ImageDialog(JFrame frame)

super(frame);
imageLabel = new JLabel();
getContentPane().add(imageLabel);
this.addWindowListener(new WindowAdapter()
public void windowClosing(WindowEvent e)
hide ();

);
this.setSize(200, 200);

public void setImage(ImageIcon icon)

imageLabel. ______(icon);


答案

参考答案:①new ImageIcon(fileName)
②setIcon

解析: 本题是将图片作为图标显示到构件中。 ImageDialog是程序自定义的一个对话框类,在其中添加了一个JLabel对象“imageLabel”, setImage方法可以将名为“icon”的图片添加到imageLabel中,显示到界面上,ImageDialog对话框的标题为图片文件的文件名。 actionPerformed方法相应“浏览图片”按钮对应的事件。按下按钮以后,首先获得用户输入的文件名,以及对应的图片,然后生成 ImageDialog的对象,调用其中的setImage方法把图片显示出来。
第1个空是获得根据文件名获得图片。直接根据文件名新建一个ImageIcon对象。
第2个空考查构件添加图标的方法。JLabel添加图标的方法是setIcon()。

单项选择题 A1/A2型题
多项选择题