需求:

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

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();
} }

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

GUI练习——列出指定目录内容的更多相关文章

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

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

  2. [javaSE] GUI(练习-列出指定目录内容)

    获取Frame对象 获取TextField对象 获取TextArea对象 获取Button对象 调用Frame对象的add()方法,添加进去 调用TextField对象的getText()方法,可以获 ...

  3. 事件监听机制——列出指定目录内容、添加Dialog对话框

    事件监听机制理解与Dialog练习 利用Java语言,仿照我的电脑目录进行打开目录,输入文件路径,查看该路径下所有的文件,设置两个文本框,一个转到按钮,当点击转到按钮时,查看路径是否正确,若正确在第二 ...

  4. Java基础---Java---IO流-----File 类、递归、删除一个带内容的目录、列出指定目录下文件夹、FilenameFilte

    File 类 用来将文件或者文件夹封装成对象 方便对文件与文件夹进行操作. File对象可以作为参数传递给流的构造函数 流只用操作数据,而封装数据的文件只能用File类 File类常见方法: 1.创建 ...

  5. 获取小众ftp服务器指定目录内容列表

    今天获取小众ftp服务器指定目录内容列表时费劲急了. ///parama url="ftp://x.x.x.x/dir_name" public string GetFTPDir( ...

  6. python3获取指定目录内容的详细信息

    不同平台获取指定目录内容的详细信息命令各不相同: Linux中可以通过ls -al获取获取 windows中可以通过dir命令获取 下面是我写的一个通用获取目录内容详细信息的python3脚本: #! ...

  7. Python列出指定目录下的子目录/文件或者递归列出

    1.python只列出当前目录(或者指定目录)下的文件或者目录条目 import os files,dirs=[],[] for item in os.listdir(): if os.path.is ...

  8. javaFile循环列出指定目录下的所有文件(源代码)

    package javatest.basic22; import java.io.File; import java.io.IOException; public class FileTest { p ...

  9. Java图形界面开发—列出指定目录

    代码如下: package com.packageTemp; import javax.swing.*; import java.awt.*; import java.awt.event.*; imp ...

随机推荐

  1. android混淆打包配置(忽略第三方jar)

    在project.properties里加上   proguard.config=proguard.cfg proguard.cfg 配置如下: -optimizationpasses 5-dontu ...

  2. 幸运大转盘-jQuery+PHP实现的抽奖程序

    目前好多网站上应用的转盘抽奖程序大多是基于flash的,而本文结合实例将使用jQuery和PHP来实现转盘抽奖程序,为了便于理解,作者分两部分来讲解,本文讲解第一部分,侧重使用jQuery实现转盘的转 ...

  3. Quartz.NET 2.0 作业调度框架使用

    Quartz.NET是一个开源的作业调度框架,是 OpenSymphony 的 Quartz API 的.NET移植,它用C#写成,可用于winform和asp.net应用中.它提供了巨大的灵活性而不 ...

  4. html系列教程--元素

    HTML 元素语法 HTML 元素以开始标签起始 HTML 元素以结束标签终止 元素的内容是开始标签与结束标签之间的内容 某些 HTML 元素具有空内容(empty content) 空元素在开始标签 ...

  5. Lazarus解决含中文文件名或路径的使用问题

      其实用lazarus很久(也不算久啦..),目前打算做完手头的最后一个小程序然后就转向c#窗体程序..之前用lazarus的时候出了很多问题,资料也不是很好找,所以这回把比较容易说的记下来省得忘掉 ...

  6. C语言处理CSV文件的方法(一)

    什么是CSV文件 CSV是 Comma-separated values (逗号分隔值)的首字母缩写,它通常是以逗号且不仅限于逗号分隔各个值,我们都叫他CSV. 看下面的例子: China, Shan ...

  7. Swift 基本基本运算符

    Swift 1,赋值运算符 Swift赋值表达式是没有值的,不支持连续赋值. 2,算术运算符 除数可为0 var f=1/0.0 求余的结果的正负取决于被除数 3,溢出运算符* 根据二进制来进行计算 ...

  8. php对xml的处理

    $paymentResult  = $ips='<Ips><GateWayRsp><head><ReferenceID></ReferenceID ...

  9. PHP MySql数据库访问

    PHP MySql数据库访问 计应134   凌豪 1.MySql数据库的连接 要操作MySql数据库,首先必须与MySQl数据库建立连接,连接MySQL服务器的语句如下: <?php$link ...

  10. hdu 4634 Swipe Bo bfs+状态压缩

    题目链接 状态压缩记录当前拿到了哪些钥匙, 然后暴力搜索. 搞了好几个小时, 一开始也不知道哪里错了, 最后A了也不知道一开始哪里有问题. #include <iostream> #inc ...