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+"\r\n");
			}
		}
		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培訓、期待與您交流! ------------------------------------

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章