需求:

一个窗体里。在文本框输入路径后,摁回车键或者点击"转到"按钮后; 若路径合法,程序会自动在文本域里显示该路径下的文件目录;若路径非法,则弹出对话框,告之你路径非法。点击"确认"关闭对话框。

package Test603;import java.awt.*;
import java.awt.event.*;
import java.io.File;/*** 需求:一个窗体里。在文本框输入路径后,摁回车键或者点击"转到"按钮后,* 若路径合法,程序会自动在文本域里显示该路径下的文件目录;* 若路径非法,则弹出对话框,告之你路径非法。* 点击"确认"关闭对话框;* * @author Administrator**/
public class MyWindow {private Frame fm;private Button bt;private TextField tf;private Dialog dl;private TextArea ta;private Label lb;private Button bt1;//把布局的一些设置放在类的构造函数里,使其一初始化,便开始加载这些布局MyWindow() {init();}public void init(){fm = new Frame("我的窗口");fm.setBounds(300, 100, 600, 500);fm.setLayout(new FlowLayout());//布局方式tf = new TextField(60);bt = new Button("转到");ta = new TextArea(25, 70);dl = new Dialog(fm, "错误提示信息", true); //初始化一个对话框dl.setBounds(400, 200, 240, 150);dl.setLayout(new FlowLayout());lb = new Label("路径是无效的"); //初始化一个标签(对话框里的信息)bt1 = new Button("确认"); //初始化一个按钮(对话框里的)dl.add(lb);dl.add(bt1);fm.add(bt);//将组件添加到Farame中fm.add(tf);fm.add(ta);this.myEvent();//调用事件fm.setVisible(true);//设置初始时为可见的}//事件。里面定义监听器,private void myEvent(){//窗体的监听器,当点击了叉号后会关闭窗体fm.addWindowListener(new WindowAdapter() {public void windowClosing(WindowEvent e){System.exit(0);}});//按钮的监听器,当摁了按钮后,调用显示目录文件的方法showDir()bt.addActionListener(new ActionListener() {public void actionPerformed(ActionEvent e) {showDir();}});//对话框里按钮的监听器,当摁了后会关闭对话框bt1.addActionListener(new ActionListener() {public void actionPerformed(ActionEvent e) {dl.setVisible(false);      }});//键盘的监听器,当在文本框里输入路径后直接敲回车键,便可调用showDir()tf.addKeyListener(new KeyAdapter() {public void keyPressed(KeyEvent e){if(e.getKeyCode()==KeyEvent.VK_ENTER){showDir();}}});}/*定义列出文件目录的函数:* 它先会判断从文本框输入的路径是否合法(是否存在并且是目录),* 若合法,则列出该目录下的所有文件,添加到(append)到文本域中显示出来* 若非法,则它会初始化一个对话框,并弹出告诉你错误信息* */public void showDir(){String dirPath = tf.getText();File dir = new File(dirPath);if(dir.exists()&&dir.isDirectory()){ta.setText("");String[] dirNames = dir.list();for(String name:dirNames){ta.append(name+"\r\n");}}else {dl.setVisible(true);}}public static void main(String[] args) {new MyWindow();}}

我们的需求是基本实现了,但不太理想的地方是:对话框是只有输入非法路径的时候才会出现的,大多数情况下是不会出现的,但我们是给一初始化便加载了对话框,这造成了内存的浪费。我们应该思考如何改进。。。

转载于:https://www.cnblogs.com/wangerxiansheng/p/3836382.html

GUI练习——列出指定目录内容相关推荐

  1. 9.JAVA之GUI编程列出指定目录内容

    代码如下: /*列出指定目录内容*/ import java.awt.Button; import java.awt.FlowLayout; import java.awt.Frame; import ...

  2. Linux 命令之 ls -- 列出指定目录下的内容

    文章目录 一.命令介绍 二.语法格式 三.常用选项 四.参考示例 (一)显示工作目录下(当前目录)所有的文件和目录 (二)显示工作目录下所有的文件和目录 (三)显示文件的详细信息,且显示文件的修改时间 ...

  3. [Linux C]列出指定目录下的所有文件(夹)

    在Linux下,用C语言实现列出指定目录下的所有文件和文件夹: #include <stdio.h> #include <dirent.h> #include <stdl ...

  4. 用java来实现列出指定目录下的文件,子目录下的文件也要输出

    写一个 javaTest程序,列出所有目录下的*.java 文件,把子目录下的 JAVA文件也打印出来. package javaiotest;import java.io.File; public ...

  5. 如何在bat脚本中列出指定目录下的所有文件信息

    今天在研究windows系统下的bat脚本,想要去遍历一个目录并输出该目录下的所有文件的详细信息.经过一番查找和摸索,使用以下代码即可实现: @echo offset source_dir=" ...

  6. Linux 命令之 tree -- 以树状图列出目录的内容/查看目录内容

    文章目录 一.命令介绍 二.常用选项 三.命令示例 (一)按树形结构显示当前目录下的内容 (二)按树状图显示当前目录下的所有目录名称而非文件 (三)列出指定目录下的第一层级的文件和目录名称 (四)不显 ...

  7. nio2和nio2_列出和过滤NIO.2中的目录内容

    nio2和nio2 在Java 7发行之前,列出目录内容的领域并没有发生太多事情.但是,由于NIO.2引入了一种新的方法来做到这一点,因此覆盖这一领域可能是值得的. NIO.2的一大优点是能够在一个方 ...

  8. 列出和过滤NIO.2中的目录内容

    在Java 7发行之前,列出目录内容的领域并没有发生太多的事情.但是,由于NIO.2引入了一种新的方式来做到这一点,因此涵盖这一领域可能是值得的. NIO.2的一大优点是能够在一个方法调用中立即使用列 ...

  9. 趣学python3(48)--列出所有目录及子目录文件

    列出当前目录及文件 from pathlib import Path srcPath = Path('../src/') [x for x in srcPath.iterdir() if srcPat ...

  10. python获取文件路径下指定的类型的文件_python学习1-列出指定目录下的指定类型文件...

    列出指定目录下的指定类型文件 import sys import os import getopt def DisplayFileAndPath(directory, pfix, pfixset=Fa ...

最新文章

  1. 0x55. 动态规划 - 环形与后效性处理(例题详解 × 6)
  2. python命令行大全-用什么库写 Python 命令行程序(示例代码详解)
  3. Tomcat - Tomcat套娃式架构与配置文件的对应关系解读
  4. 多数据源使用spring-data-jpa无法部署到JBoss As Server
  5. 「软件项目管理」一文详解软件配置管理计划
  6. 同级选择器_10-CSS3选择器详解
  7. svga文件如何查看_电脑隐藏文件?如何查看隐藏文件 方法简单易学
  8. 2013-2018卷积神经网络中十个最重要的概念与创新
  9. dfs序七个经典问题[转]
  10. Vijos1982 NOIP2015Day2T2 子串 substring 动态规划
  11. excel选择性粘贴为何是html,Excel2016中选择性粘贴功能的使用方法
  12. poj1386 Paly onWords
  13. python中求和符号怎么打_参数siz向量的python符号求和与微分
  14. 要成功,就要对自己狠心
  15. python环境搭建和pycharm的安装配置及汉化(零基础小白版)
  16. Symfony5 系列教程1-安装并认识symfony
  17. Java中被final修饰的变量的几种赋值方式
  18. 使用scoop下载Annie时提示couldnt find manifest for annie
  19. Jenkins:設定一次後就很方便的排程工具
  20. Qt - 奇葩问题 解决方案

热门文章

  1. kubernetes如何进入指定的容器
  2. Ubuntu16.04 安装Apache2和php后,无法访问phpinfo.php
  3. matlab图像分割基于小波变换,图小波变换在图像分割中的应用研究
  4. java 正则 非贪婪_正则表达式中贪婪模式与非贪婪模式的区别
  5. SpringMVC学习(一)SpringMVC入门 、HelloSpringMVC程序、SpringMVC执行原理
  6. 二维数组代表迷宫java_Java 二维数组迷宫游戏
  7. thinkphp5之配置tp5重写伪静态
  8. 二十四、Java集合框架(二)
  9. Jekyll搭建lanmps.com站点
  10. TestLink 测试/测试用例使用