以下一段java程序,看不懂,求加下注释,讲解下,同时给下运行结果(原题是那样要求的)

2024-12-04 22:01:12
推荐回答(3个)
回答1:

希望能帮助你



import java.awt.BorderLayout;
import java.awt.Choice;
import java.awt.Frame;
import java.awt.TextField;
import java.awt.event.ItemEvent;
import java.awt.event.ItemListener;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
import java.io.File;

public class Ch71 extends Frame {

    int n;// 循环时使用的变量
    String dirname = "c:/";// 文件遍历目录路径
    File file = new File(dirname);// 打开文件
    String[] flist = new String[100];// 定义数组
    Choice listFile = new Choice();// 定义选择框
    TextField tf = new TextField();  // 定义文本框

    public Ch71() {
        setLayout(new BorderLayout(10, 10));// 设置布局方式
        flist = file.list();//获取指定目录下面的文件和文件夹
        for (n = 0; n < flist.length; n++) {//遍历文件
            listFile.addItem(flist[n]);//选择框添加单元
        }
        add("North", listFile);// 把选择框放置窗口北方
        add("South", tf);//把文本框放置在窗口南方
        setSize(250, 200);//设置窗口大小
        setVisible(true);// 设置窗口可见
        listFile.addItemListener(new koListener());// 选择框添加选择监听事件
        addWindowListener(new koWindowListener());// 添加窗口事件
    }

    public static void main(String args[]) {
        new Ch71();// 启动小程序
    }

    class koListener implements ItemListener {// 选择框监听类

        public void itemStateChanged(ItemEvent e) {// 选中状态发生变化
            String ko = (String) e.getItem();// 获取选择框选中文本
            for (n = 0; n < flist.length; n++)
                if (ko == flist[n]) {// 判断文件是否是文件还是目录
                    File f = new File(file + System.getProperty("file.separator") + ko);
                    if (f.isFile() == true) tf.setText(ko + "是个文件!");
                    if (f.isDirectory() == true) tf.setText(ko + "是个目录!");
                }
        }
    }

    class koWindowListener extends WindowAdapter {// 窗口监听类

        public void windowClosing(WindowEvent e) {// 窗口即将关闭时
            dispose();// 窗口隐藏
            System.exit(0);// 程序退出
        }
    }
}

回答2:

我运行了一下,有异常!java.lang.NullPointerException
我是JAVA图形界面的内容,我工作近一年了,没有用到,我的同学朋友也没有谁用,我的建议是,不要研究它,否则英雄无用武之地,这些代码,我全部能看得懂。
import java.io.*;
import java.awt.*;
import java.awt.event.*;
public class Ch71 extends Frame {
int n;
String dirname = "/jdk1.4";//这应该是路径,你写不对了
File file = new File(dirname);
String[] flist = new String[100];
Choice listFile = new Choice();//选择的组件
TextField tf = new TextField();//文本框
public Ch71() {
setLayout(new BorderLayout(10, 10));//布局管理器
flist = file.list();//这样会列出所有的文件及文件夹
for (n = 0; n < flist.length; n++) {//这行报错了,主要是遍历添加到选项中
listFile.addItem(flist[n]);
}
add("North", listFile);//父类的方法
add("South", tf);
setSize(250, 200);
setVisible(true);
listFile.addItemListener(new koListener());//注册监听
addWindowListener(new koWindowListener());//注册监听
}
public static void main(String args[]) {
new Ch71();
}
class koListener implements ItemListener {
public void itemStateChanged(ItemEvent e) {//当选中某项后,触发
String ko = (String) e.getItem();
for (n = 0; n < flist.length; n++)//遍历所有的选项
if (ko == flist[n]) {
File f = new File(file
+ System.getProperty("file.separator") + ko);//类加载,找这个file.separator文件
if (f.isFile() == true)
tf.setText(ko + "是个文件!");
if (f.isDirectory() == true)
tf.setText(ko + "是个目录!");
}
}
}
class koWindowListener extends WindowAdapter {
public void windowClosing(WindowEvent e) {//关闭,就像浏览器的关闭那个叉
dispose();
System.exit(0);//把JVM关闭了,程序就彻底停了
}
}
}

回答3:

路过,太难了,玩了一下搞晕了