需求:

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

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. 《think in python》学习-2

    高能提示:本文大量编程术语与释义,一些释义如有偏差恕不讨论. 变量,表达式 数据类型: print 4 #打印整数 int print 4.1#打印浮点数 float print "hell ...

  2. IsPostBack是什么意思,如何运用?

    IsPostBack是Page类的一个属性,返回值为一个布尔值.一般放在Page_Load事件中.当页面是第一次打开时其值为False,若当前页面为一个提交后的页面其值为True. if (!IsPo ...

  3. Maven命令行创建web项目,并部署到jobss当中(解决No plugin found for prefix 'jboss-as' in the current project and in the plugin groups [org.apache.maven.plugins,问题)

    首件创建项目:此处可参照:http://maven.apache.org/guides/mini/guide-webapp.html mvn archetype:generate -DgroupId= ...

  4. mysql函数操作(3)

    <?php $dbh = new PDO('mysql:dbname=testdb;host=localhost', 'mysql_user', 'mysql_pwd'); $dbh->s ...

  5. Scala中的apply实战详解

    apply可以应用与Object和Class,单调用情景不一样. 通过Array(1,2,3,4,5) 可以调用到Array中的.appy方法.你可以看源码是如何实现apply的. 类中的appy比较 ...

  6. Werkzeug源码阅读笔记(四)

    今天主要讲一下werkzeug中的routing模块.这个模块是werkzeug中的重点模块,Flask中的路由相关的操作使用的都是这个模块 routing模块的用法 在讲解模块的源码之前,先讲讲这个 ...

  7. Red Hat Enterprise Linux Release Dates

    Red Hat Enterprise Linux Release Dates UpdatedMay 10 2016 at 10:57 PM - English The tables below lis ...

  8. tail -f

    http://stackoverflow.com/questions/187587/looking-for-a-windows-equivalent-of-the-unix-tail-command ...

  9. UI设计中与字号有关的知识

    在我们设计APP.设计前端页面时,免不了要和各种文字大小打交道.字体的大小有多种单位,不明究里的话使用起来很容易出问题.今天整理了这方面的东西做了个图片,方便查看. 图上的资料来自互联网,感谢大家的负 ...

  10. Android自定义View研究--View中的原点坐标和XML中布局自定义View时View触摸原点问题

    这里只做个汇总~.~独一无二 文章出处:http://blog.csdn.net/djy1992/article/details/9715047 Android自定义View研究--View中的原点坐 ...