1.创建项目Lab37,添加类MainFrame,继承自JFrame,实现ActionListener接口。
2.添加以下成员属性
a)JTree类型的treeDir
b)String类型的dirName
c)JSplitPane类型的sp
d)JTable类型的fileInfo
3.构造方法
a)设置标题为“文件信息查看器”
b)创建工具栏,并添加一个“打开”按钮。注册按钮事件监听对象为this
c)构造一个只有一个节点,显示“未选择目录”的树,引用到treeDir
d)将treeDir加入到sp的左侧
e)将fileInfo设置为一个表头显示"文件名","文件大小"。只有一行数据"未选择文件","0"的表。
f)将fileInfo加入到sp的右侧
g)将工具栏放置在窗体的North方位,sp放置在Center。设置窗体大小为600*480,可见。
4.添加一个方法makeTree,没有返回值,参数String rName, String[] nName。方法逻辑如下:
a)以rName为内容定义一个节点作为根节点root。
b)定义一个DefaultMutableTreeNode数组nodes,数组的个数为nName数组元素的数目。
c)利用循环,将nName数组的每一个内容构建一个节点,并复制到nodes数组的元素。将当前这个nodes的节点添加到root的子节点。
d)创建根为root的树引用到treeDir。
e)将treeDir放入JScrollPane容器再添加到sp的左侧。sp.setLeftComponent(new JScrollPane(treeDir));
5.添加一个方法makeTable,没有返回值,参数File[] nFile
a)如果nFile的内容为空,则返回。
b)定义DefaultTableModel对象dtm,获取fileInfo对象的模型。
c)清除原有数据行。
d)定义字符串数组title,内容为"文件名","文件大小"。将title设置为表头作为表头。dtm.setColumnIdentifiers(title);
e)定义一个2元素的String数组data,循环遍历nFile,将每个元素的文件名赋值到data[0],文件大小赋值到data[1]。将data添加为表格的一行。dtm.addRow(data);
6.添加一个方法openFile,没有返回值,不需要参数。方法处理逻辑如下
a)定义一个JFileChooser对象fileChooser。
b)调用fileChooser的setFileSelectionMode方法,参数JFileChooser.DIRECTORIES_ONLY。使得只能选择目录。
c)打开文件对话框,定义临时int变量rVal记录返回值。
d)如果是按“确定”返回,则将用户选择的目录路径赋值到dirName。根据dirName构建文件对象,调用makeTree方法和makeTable方法。
7.实现actionPerformed方法
a)判断事件源是否为按钮。
b)如果是按钮事件,则调用openFile方法
8.主方法
a)构造MainFrame对象。
具体图片如下
求大神回答 java的swing题目
- 写回答
- 好问题 0 提建议
- 追加酬金
- 关注问题
- 邀请回答
-
6条回答
悬赏问题
- ¥15 执行 virtuoso 命令后,界面没有,cadence 启动不起来
- ¥50 comfyui下连接animatediff节点生成视频质量非常差的原因
- ¥20 有关区间dp的问题求解
- ¥15 多电路系统共用电源的串扰问题
- ¥15 slam rangenet++配置
- ¥15 有没有研究水声通信方面的帮我改俩matlab代码
- ¥15 ubuntu子系统密码忘记
- ¥15 保护模式-系统加载-段寄存器
- ¥15 电脑桌面设定一个区域禁止鼠标操作
- ¥15 求NPF226060磁芯的详细资料