本程序的目的是在屏幕上显示当前目录下的文件信息。文件信息通过表格JTable的实例显示。请更正题中带下划线的部分,使程序能输出正确的结果。 注意:不改变程序的结构,不得增行或删行。 import java.awt.*; import ja

admin2009-12-22  39

问题 本程序的目的是在屏幕上显示当前目录下的文件信息。文件信息通过表格JTable的实例显示。请更正题中带下划线的部分,使程序能输出正确的结果。
   注意:不改变程序的结构,不得增行或删行。
   import java.awt.*;
   import javax.swing.*;
   import java.util.Date;
   import javax.swing.table.*;
   import java.applet.*;
   import java.io.*;
   public class advance extends JApplet, JFrame
   {
      public void init()
      {
         FileModel fm=new FileModel();
         JTable jt=new JTable();
         jt.setAutoResizeMode(JTable.AUTO_RESIZE_OFF);
         jt.setColumnSelectionAllowed(true);
         JScrollPane jsp=new JScrollPane(jt);
         getContentPane().add(jsp, BorderLayout.CENTER);
      }
      public static void main(String args[])
      {
         advance ft=new advance();
         ft.init();
         JFrame f=new JFrame();
         f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
         f.getContentPane().add(ft.getContentPane());
         f.setSize(300,400);
         f.show();
      }
   }
   class FileModel extends AbstractTableModel
   {
      String[] columnName=new String[] {
        "文件名","大小","最后修改时间"
      };
      Object[][] data;
      public FileModel() {this(".");}
      public FileModel(String dir)
      {
         File file=new File(dir);
         String files[]=file.list();
         data=new Object[files.length] [columnName.length];
         for(int i=0; i<files.length; i++)
         {
            File tmp=new File(files);
            data [0]=tmp.getName();
            data [1]=new Long(tmp.length());
            data [2]=new Date(tmp.lastModified());
         }
      }
      public int getColumnNumber()
      {
         return columnName.length;
      }
      public int getRowCount()
      {
         return data.length;
      }
      public String getColumnName(int col)
      {
         return columnName[col];
      }
      public Object getValueAt(int row, int col)
      {
         return data[row] [col];
      }
      public Class getColumnClass(int c)
      {
         return getValueAt(0,c).getClass();
      }
   }

选项

答案extends JFrame JTable(fm) getColumnCount

解析 本题考查知识点:JTable构件的使用、小程序的安全机制。解题思路:FileModel定义了一个JTable的模型,在这个模型中,File file=new File(dir)语句获得当前目录下的文件信息,然后将这些文件信息存储在模型的data变量中。Applet的沙箱模型规定,未授权的小应用程序不能访问本地资源,当然也就不能读、写本地计算机的文件系统。本程序需要获得当前目录的信息,因此本题程序只能作为应用程序运行,所以第1处下划线应该去掉JApplet。JTable的主要功能是将数据以二维表格的方式显示出来。本题采用的是MVC模式,FileModel实现了表格的模型。第2条下划线处使用JTable的构造方法将模型赋予表格“it”。 AbstractTableModel所有的抽象方法都需要实现。第3条下划线处的方法在功能上与抽象方法 getColumnCount()相同,但是并没有实现该抽象方法。因此需要更正。
转载请注明原文地址:https://jikaoti.com/ti/7Qb0FFFM
0

最新回复(0)