问答题

下面程序的目的是在屏幕上显示当前目录下的文件信息。文件信息通过表格JTable的实例显示。请改正程序中的错误(有下划线的语句),使程序能输出正确的结果。
注意:不改动程序的结构,不得增行或删行。
import java.awt.*;
import javax.swing.*;
import java.util. Date;
import javax.swing.table.*;
import java.applet.*;
import java.io.*;
public class Example3_10 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[])

Example3_10 ft = new Example3_10();
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[i]);
data[i] [0] = tmp.getName();
data[i] [1] = new Long(tmp.length());
data[i] [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
热门 试题

多项选择题
下列程序中,用户使用JOptionPane输入一个二维数组的行数,程序随机生成每一行的列数,并对其赋值。最后显示这个二维数组。请填写横线处的内容。 注意:请勿改动main()主方法和其他已有语句内容,仅在横线处填入适当语句。 import javax.swing.*; public class Examplel_10 public static void main (String[] argv) String sDimU = JOptionPane. showInputDialog ( 请输入数组的行数 ); int iDimU = __________ (sDimU); int [] [] numbers = new int[iDimU] []; for(int i = 0; i < iDimU; i++) int k = (int) (Math.random() *5+1); numbers [i] = ____________; for(int i = O; i < iDimU; i++) for(int j = 0; _________; j++) numbers[i] [j] = (int) (Math.random()*100); System.out.print(numbers[i] [j] + ); System.out.println(); System.exit(O);
下列程序中,用户使用JOptionPane输入一个二维数组的行数,程序随机生成每一行的列数,并对其赋值。最后显示这个二维数组。请填写横线处的内容。
注意:请勿改动main()主方法和其他已有语句内容,仅在横线处填入适当语句。
import javax.swing.*;
public class Examplel_10
public static void main (String[] argv)

String sDimU = JOptionPane. showInputDialog ("请输入数组的行数");
int iDimU = __________ (sDimU);
int [] [] numbers = new int[iDimU] [];
for(int i = 0; i < iDimU; i++)

int k = (int) (Math.random() *5+1);
numbers [i] = ____________;

for(int i = O; i < iDimU; i++)

for(int j = 0; _________; j++)

numbers[i] [j] = (int) (Math.random()*100);
System.out.print(numbers[i] [j] + " ");

System.out.println();

System.exit(O);