需求:

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

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常用控件之GridView使用BaseAdapter

    我们可以为GridView添加自定义的Adapter,首先看下用自定义Adapter的显示效果 在布局文件main.xml文件中定义一个GridView控件 <RelativeLayout xm ...

  2. CSS 根据数据显示样式

    在低版本IE时代,我们想让数据根据其值显示不同的样式可能需要直接从服务器端输出时为不同的数据添加相应的class.但现在,通过属性选择器+伪元素+属性选择符,这三个东西混合使用就可以让数据根据其值以不 ...

  3. 给自己保存份CSS初始值样式

    @charset "utf-8";body,div,dl,dt,dd,ul,ol,li,h1,h2,h3,h4,h5,h6,pre,form,fieldset,input,text ...

  4. nutch2.3命令参数解析

    nutch中可执行的命令列表 [root@ewanalysis ~]# nutch Usage: nutch COMMAND where COMMAND is one of: inject injec ...

  5. 为什么用户主目录下.bash_profile没有自动执行

    请注意 一般登录当前用户后 .bash_profile会自动运行 如果不自动运行请查看是不是切换用户的时候使用的su 用户名而不是su - 用户名 添加中间这个 - 后 会除了切换用户外还会加载该用户 ...

  6. JAVA关键字transient

    转载自http://www.cnblogs.com/liuling/archive/2013/05/05/transient.html 1.transient关键字只能修饰变量,而不能修饰方法和类.注 ...

  7. QF——UI之UIImageView及UIView的形变属性transform

    UIImageView: 专门用来放置图片的视图.它里面放置的图片是[UIImage imageNamed: (NSString) imgName]生成的,注意千万别只写成图片NSString类型的名 ...

  8. flush privileges是什么意思?

    flush privileges 命令本质上的作用是将当前user和privilige表中的用户信息/权限设置从mysql库(MySQL数据库的内置库)中提取到内存里.MySQL用户数据和权限有修改后 ...

  9. [原创]反汇编之一:和Taskmgr过不去篇(无厘头版)

    原文链接:和Taskmgr过不去篇(无厘头版) Hook入门级文章,主要想培养一下偶写文章的感觉,老鸟无视…我想看看技术文章能不能无厘头的写,如果效果不错的话,准备更上一层-----用我的原创漫画表达 ...

  10. cocos2d-x -------之笔记篇 动画的实现

    cocos2d-x 动画的实现 一.实现原理 动画的实现其实就是使用一个完整的动作图片集来实现动画,达到动态的效果 动画动作类(CCAnimate)是加载一个动画类来实现动作. 动画类(CCAnima ...