zoukankan      html  css  js  c++  java
  • Test__GUI__列出指定目录内容

     ---------------------------------------- android培训java培训、期待与您交流! ------------------------------------

    需求:创建窗体,列出硬盘上指定文件夹的内容,如果该目录不存在,则弹出对话框,提示用户错误

    主要涉及到的知识点

    1,需要用到窗体的基本知识Frame的配置,

    2,文本框和文本区域,TextField &  TextArea

    3,对话框Dialog

    4,各组件对应的监听器,内部类

    5,IO流

    实现过程:

    import java.awt.*;
    import java.awt.event.*;//事件包
    import java.io.*;
    class  MyWindow
    {
    	private Frame f;//窗体组件
    	private Button but;
    	private TextField tf;
    	private TextArea ta;
    
    	private Dialog d;//对话框组件
    	private Label lab;
    	private Button okBut;
    
    	MyWindow(){
    		init();
    	}
    	public void init()
    	{
    		f = new Frame("My Window");//窗体组件
    		f.setBounds(300,200,600,400);
    		f.setLayout(new FlowLayout());
    
    		tf = new TextField(60);//文本框
    		but = new Button("转到");//按钮
    		ta = new TextArea(20,78);//文本区域
    
    		d = new Dialog(f,"提示信息",true);//对话框,类似于窗体,是与窗体关联的触发机制
    		d.setBounds(300,200,350,150);
    		d.setLayout(new FlowLayout());
    		lab = new Label();
    		okBut = new Button("OK");
    
    		d.add(lab);	//添加对话框组件
    		d.add(okBut);
    
    		f.add(tf);//添加窗体组件
    		f.add(but);
    		f.add(ta);
    		
    		myEvent();
    		f.setVisible(true);
    	}
    
    	private void myEvent()
    	{
    		but.addActionListener(new ActionListener(){//文本框和文本区域监听处理
    			public void actionPerformed(ActionEvent e){
    				showDir();
    			}
    		});
    		f.addWindowListener(new WindowAdapter(){//窗体事件,关闭
    			public void windowClosing(WindowEvent e){
    				System.exit(0);
    			}
    		});
    		tf.addKeyListener(new KeyAdapter(){//文本框键盘监听,Enter,同按钮功能
    			public void keyPressed(KeyEvent e){
    				if(e.getKeyCode() == KeyEvent.VK_ENTER)
    					showDir();
    			}
    		});
    		d.addWindowListener(new WindowAdapter(){	//对话框事件,关闭对话框
    			public void windowClosing(WindowEvent e){
    				tf.setText("");
    				d.setVisible(false);//点击后隐藏窗体
    			}
    		});
    		okBut.addActionListener(new ActionListener(){//对话框的按钮事件监听,点OK按钮退出对话框
    			public void actionPerformed(ActionEvent e){
    				d.setVisible(false);
    			}
    		});
    	}
    	
    	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){	//遍历
    				ta.append(name+"
    ");
    			}
    		}
    		else{//如果不存在,或者不是目录
    			String info = "没有找到路径:"+dirPath+" 请重新输入";
    			lab.setText(info);//设置标签内容
    			d.setVisible(true);//当不满足条件时才弹出对话框
    		}
    	}
    	public static void main(String[] args) 
    	{
    		new MyWindow();
    	}
    }

    运行效果:



    Dialog对话框:

    在触发某一事件时弹出对话框提醒用户

    创建时需要关联窗体,方法与窗体类似可以添加按钮,设置标签Label,通过setVisible(boolean b);来控制弹出和消失





     ---------------------------------------- android培训java培训、期待与您交流! ------------------------------------

  • 相关阅读:
    【2020】iOS证书(.p12)和描述文件(.mobileprovision)一键申请流程
    苹果开发者账号正在调查原因解答
    【2020最新】苹果iOS开发者到期续费流程
    【2020】联系苹果客服电话入口及步骤
    苹果电脑Transporter App及Windows上传ipa工具Appuploader
    一文学会苹果TestFlight上架详细流程
    iOS APP打包上线App Store七个步骤详解(2020版)
    技术分享 | mysql 表数据校验
    MySQL 自带的4个系统数据库的说明
    linux定时任务crontab怎样执行root命令
  • 原文地址:https://www.cnblogs.com/Joure/p/4337205.html
Copyright © 2011-2022 走看看