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

admin2013-02-25  55

问题 下列程序用来显示用户要求打开的图片。在名为“读取图像”的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()。
转载请注明原文地址:https://kaotiyun.com/show/qR2p777K
0

最新回复(0)