GUI练习——列出指定目录内容
需求:
一个窗体里。在文本框输入路径后,摁回车键或者点击"转到"按钮后; 若路径合法,程序会自动在文本域里显示该路径下的文件目录;若路径非法,则弹出对话框,告之你路径非法。点击"确认"关闭对话框。
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练习——列出指定目录内容相关推荐
- 9.JAVA之GUI编程列出指定目录内容
代码如下: /*列出指定目录内容*/ import java.awt.Button; import java.awt.FlowLayout; import java.awt.Frame; import ...
- Linux 命令之 ls -- 列出指定目录下的内容
文章目录 一.命令介绍 二.语法格式 三.常用选项 四.参考示例 (一)显示工作目录下(当前目录)所有的文件和目录 (二)显示工作目录下所有的文件和目录 (三)显示文件的详细信息,且显示文件的修改时间 ...
- [Linux C]列出指定目录下的所有文件(夹)
在Linux下,用C语言实现列出指定目录下的所有文件和文件夹: #include <stdio.h> #include <dirent.h> #include <stdl ...
- 用java来实现列出指定目录下的文件,子目录下的文件也要输出
写一个 javaTest程序,列出所有目录下的*.java 文件,把子目录下的 JAVA文件也打印出来. package javaiotest;import java.io.File; public ...
- 如何在bat脚本中列出指定目录下的所有文件信息
今天在研究windows系统下的bat脚本,想要去遍历一个目录并输出该目录下的所有文件的详细信息.经过一番查找和摸索,使用以下代码即可实现: @echo offset source_dir=" ...
- Linux 命令之 tree -- 以树状图列出目录的内容/查看目录内容
文章目录 一.命令介绍 二.常用选项 三.命令示例 (一)按树形结构显示当前目录下的内容 (二)按树状图显示当前目录下的所有目录名称而非文件 (三)列出指定目录下的第一层级的文件和目录名称 (四)不显 ...
- nio2和nio2_列出和过滤NIO.2中的目录内容
nio2和nio2 在Java 7发行之前,列出目录内容的领域并没有发生太多事情.但是,由于NIO.2引入了一种新的方法来做到这一点,因此覆盖这一领域可能是值得的. NIO.2的一大优点是能够在一个方 ...
- 列出和过滤NIO.2中的目录内容
在Java 7发行之前,列出目录内容的领域并没有发生太多的事情.但是,由于NIO.2引入了一种新的方式来做到这一点,因此涵盖这一领域可能是值得的. NIO.2的一大优点是能够在一个方法调用中立即使用列 ...
- 趣学python3(48)--列出所有目录及子目录文件
列出当前目录及文件 from pathlib import Path srcPath = Path('../src/') [x for x in srcPath.iterdir() if srcPat ...
- python获取文件路径下指定的类型的文件_python学习1-列出指定目录下的指定类型文件...
列出指定目录下的指定类型文件 import sys import os import getopt def DisplayFileAndPath(directory, pfix, pfixset=Fa ...
最新文章
- 0x55. 动态规划 - 环形与后效性处理(例题详解 × 6)
- python命令行大全-用什么库写 Python 命令行程序(示例代码详解)
- Tomcat - Tomcat套娃式架构与配置文件的对应关系解读
- 多数据源使用spring-data-jpa无法部署到JBoss As Server
- 「软件项目管理」一文详解软件配置管理计划
- 同级选择器_10-CSS3选择器详解
- svga文件如何查看_电脑隐藏文件?如何查看隐藏文件 方法简单易学
- 2013-2018卷积神经网络中十个最重要的概念与创新
- dfs序七个经典问题[转]
- Vijos1982 NOIP2015Day2T2 子串 substring 动态规划
- excel选择性粘贴为何是html,Excel2016中选择性粘贴功能的使用方法
- poj1386 Paly onWords
- python中求和符号怎么打_参数siz向量的python符号求和与微分
- 要成功,就要对自己狠心
- python环境搭建和pycharm的安装配置及汉化(零基础小白版)
- Symfony5 系列教程1-安装并认识symfony
- Java中被final修饰的变量的几种赋值方式
- 使用scoop下载Annie时提示couldnt find manifest for annie
- Jenkins:設定一次後就很方便的排程工具
- Qt - 奇葩问题 解决方案
热门文章
- kubernetes如何进入指定的容器
- Ubuntu16.04 安装Apache2和php后,无法访问phpinfo.php
- matlab图像分割基于小波变换,图小波变换在图像分割中的应用研究
- java 正则 非贪婪_正则表达式中贪婪模式与非贪婪模式的区别
- SpringMVC学习(一)SpringMVC入门 、HelloSpringMVC程序、SpringMVC执行原理
- 二维数组代表迷宫java_Java 二维数组迷宫游戏
- thinkphp5之配置tp5重写伪静态
- 二十四、Java集合框架(二)
- Jekyll搭建lanmps.com站点
- TestLink 测试/测试用例使用