需求:

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

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. Oracle Bills of Material and Engineering Application Program Interface (APIs)

    In this Document Goal   Solution   1. Sample Notes for BOM APIs   2. Datatypes used in these APIs   ...

  2. C# linq to xml

    XDocument doc = new XDocument( new XDeclaration("1.0", "utf-8", "yes") ...

  3. 3.C#/.NET编程中的常见异常(持续更新)

    1.Object reference not set to an instance of an object. 未将对象引用(引用)到对象的实例,说白了就是有个对象为null,但是你在用它点出来的各种 ...

  4. Web设计中打开新页面或页面跳转的方法 js跳转页面

    Web设计中打开新页面或页面跳转的方法 一.asp.net c# 打开新页面或页面跳转 1. 最常用的页面跳转(原窗口被替代):Response.Redirect("newpage.aspx ...

  5. js charts去掉logo

    打开js charts 3的源代码搜索关键字"fs.bg",然后会找到 fs.bg.2v(fX),将这句代码删掉就OK了,可能有的版本会是fs.bg.2u(fX) 欢迎加入群:25 ...

  6. android webview点击返回键返回上一级activity

    android webview点击返回键返回上一个activity @Override public boolean onKeyDown(int keyCode, KeyEvent event) { ...

  7. oracle form 触发器执行顺序及键定义[Z]

    1当打开FORM时: (1)PRE-FORM (2)PRE-BLOCK(BLOCK级) (3)WHEN-NEW-FORM-INSTANCE (4)WHEN-NEW-BLOCK-INSTANCE (5) ...

  8. Block使用要点

    Block简介 Block其实包含两个部分内容 Block执行的代码,这是在编译的时候已经生成好的: 一个包含Block执行时需要的所有外部变量值的数据结构. Block将使用到的.作用域附近到的变量 ...

  9. C#:判断一个String是否为数字

    方案一:Try...Catch(执行效率不高)private bool IsNumberic(string oText){          try         {                 ...

  10. 不要伤害指针(1)--运算符&和*

    原文转载地址:http://blog.csdn.net/sunchaoenter/article/details/6646001 增加自己的想法,作为笔记. 这里&是取地址运算符,*是间接运算 ...