JAVA GUI(列出指定目录内容)

本文介绍如何使用Java编程语言实现一个简单的GUI应用程序,用于遍历并显示指定目录下的文件名。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >


//仅作为学习笔记

源码

// GUI 练习  列出指定目录

import java.awt.*;
import java.awt.event.*;
import java.io.*;

class MyWindowDemo
{
	private Frame f;
	private TextField tf;
	private Button but;
	private TextArea ta;

	private Dialog d;
	private Label lab;
	private Button okBut;

	MyWindowDemo()
	{
		init();
	}

	public void init()
	{
		 f = new Frame("my window");
		 f.setBounds(300,100,600,500);
		 f.setLayout(new FlowLayout());

		 tf = new TextField(63);

		 but =  new Button("转到");

		 ta = new TextArea(25,70);//设置行数和列数

		d = new Dialog(f,"提示信息",true);
		d.setBounds(400,200,240,150);
		d.setLayout(new FlowLayout());
		lab = new Label();
		okBut = new Button("确定");

		 f.add(tf);
		 f.add(but);
		 f.add(ta);

		d.add(lab);
		d.add(okBut);

		 myEvent();

		 f.setVisible(true);
	}

	private void myEvent()
	{
		okBut.addActionListener(new ActionListener()
		{
			public void actionPerformed(ActionEvent e)
			{
				d.setVisible(false);
			}
		});

		d.addWindowListener(new WindowAdapter()
		{
			public void windowClosing(WindowEvent e)
			{
				d.setVisible(false);//设为不可见
			}
		});
		
		tf.addKeyListener(new KeyAdapter()
		{
			public void keyPressed(KeyEvent e)
			{
				if(e.getKeyCode() == KeyEvent.VK_ENTER)
					showDir();	
			}
		});

		but.addActionListener(new ActionListener()
		{
			public void actionPerformed(ActionEvent e)
			{
				showDir();
			}
		});


	
		f.addWindowListener(new WindowAdapter()
		{
			public void windowClosing(WindowEvent e)
			{
				System.exit(0);
			}
		});
	}
	private void showDir()	
	{
		String dirPath = tf.getText();
		
		File dir = new File(dirPath);
		if( dir.exists() && dir.isDirectory())
		{
			ta.setText("");//将文本设置为空
			String [] names = dir.list();
			for(String name : names)
			{	
				//setText该方法只会输出最后一个目录 因为后面的覆盖前面的
				//ta.setText(name + "\r\n");
				ta.append(name + "\r\n");//将给定文本追加到文本区的当前文本
			}
		}
		else
		{
			String info = "系统无法找到" +tf.getText() + "请从新输入!";
			lab.setText(info);
			d.setVisible(true);
		}
		tf.setText("");	
	}

	public static void main(String []args)
	{
		new MyWindowDemo();
	}
	

}







知道目录后,可以列出目录下所属的文件 import java.awt.*; import java.awt.event.*; import java.io.*; import javax.swing.*; //列出目录下的文件 public class ListFileDemo extends JFrame{ JTextField jtfPath; //路径输入文本域 JTextArea jtfShow; //显示目录下的内容 public ListFileDemo(){ super("列出目录下的文件"); Container container=getContentPane(); //得到容器 jtfPath=new JTextField(16); //实例化路径输入文本框 JButton jbGo=new JButton("转到"); //实例化"转到"按钮 jtfShow=new JTextArea(); //实例化显示内容文本框 jtfPath.addActionListener(new ShowDirListener()); //增加事件处理 jbGo.addActionListener(new ShowDirListener()); JPanel panel=new JPanel(); //实例化面板,用于增加路径输入和按钮 panel.add(jtfPath); panel.add(jbGo); container.add(panel,BorderLayout.NORTH); //增加组件到容器 JScrollPane jsp=new JScrollPane(jtfShow); jsp.setBorder(BorderFactory.createEmptyBorder(10,10,10,10)); //设置边界 container.add(jsp,BorderLayout.CENTER); setSize(300,200); //设置窗口尺寸 setVisible(true); //设置窗口可视 setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); //关闭窗口时退出程序 } class ShowDirListener implements ActionListener { //取得目录内容的事件处理 public void actionPerformed(ActionEvent event) { showDirContent(jtfPath.getText()); //调用显示目录内容方法 } } public void showDirContent(String path){ //该方法实现取得目录内容 File file=new File(path); //用路径实例化一个文件对象 File[] files=file.listFiles(); //重点:取得目录内所有文件列表 StringBuffer message=new StringBuffer(); //实例化一个StringBuffer,用于处理显示的字符串 message.append(path); //增加信息 message.append(" 内容如下:\n"); for (int i=0;i<files.length;i++){ if (files[i].isDirectory()){ //如果这是一个目录 message.append("<dir>\t"); //增加目录标识 } else{ message.append("\t"); } message.append(files[i].getName()); //增加文件或目录名 message.append("\n"); } jtfShow.setText(new String(message)); //显示消息 } public static void main(String[] args){ new ListFileDemo(); } }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值