`
strawberry2013
  • 浏览: 18117 次
文章分类
社区版块
存档分类
最新评论

黑马程序员_图形用户界面GUI_简单应用

 
阅读更多

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


以下代码实现的功能
1.写入路径,点击转到,列出该路径下的目录及文件;
2.在路径文本框中敲入回车符,完成1功能;
3.新建菜单
4.点击菜单下的打开,可以读入该文件的文本信息;
5.点击菜单下的保存,可以保存大文本框中的文本信息;
6.点击菜单下的退出,可以结束程序!

/*
基本文件的读取与保存
Strawberry2013-5-6
*/

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

class AwtDemo
{
	public static void main(String[] args)
	{
		new Awt();
	}
}
class Awt
{
	private Frame f;		
	private TextField txtf;
	private TextArea txta;
	private Label labAddr;
	private Button bt;
	private MenuBar mbar;
	private Menu caidan;
	private MenuItem openMenu;
	private MenuItem saveMenu;
	private MenuItem exitMenu;
	Awt()
	{
		f = new Frame("my");
		f.setBounds(200,200,500,450);	//	设置出现的位置,及大小
		f.setLayout(new FlowLayout());

		labAddr = new Label("目录:");
		f.add(labAddr);

		txtf = new TextField(30);
		f.add(txtf);

		bt = new Button("转到");
		f.add(bt);

		txta = new TextArea(20, 60);
		f.add(txta);

		mbar = new MenuBar();				//mbar(MenuBar)
		caidan = new Menu("菜单");			//	|--caidan(Menu)
		openMenu = new MenuItem("打开");	//		|--openMenu(MenuItem)
		saveMenu = new MenuItem("保存");	//		|--saveMenu(MenuItem)
		exitMenu = new MenuItem("退出");	//		|--exitMenu(MenuItem)

		mbar.add(caidan);
		caidan.add(openMenu);
		caidan.add(saveMenu);
		caidan.addSeparator();				//		---------------分割线
		caidan.add(exitMenu);

		f.setMenuBar(mbar);

		myEvent();
		f.setVisible(true);
	}
	public void myEvent()			//监听方法集
	{
		f.addWindowListener(new WindowAdapter()//窗体监听机制,由于有多个故有适配器
		{
			public void windowClosing(WindowEvent e)//当监听器发现窗体关闭,就会发生windwClosing动作,
			{								//将事件打包,存于WindowEvent的e中,可以查看事件的相信信息!
				System.exit(0);				//程序退出
			}
		});
		bt.addActionListener(new ActionListener()//button按钮的活动监听
		{
			public void actionPerformed(ActionEvent e)//只有这一个方法
			{
				showDir(txtf.getText());
			}
		});
		/* button的双击监听
		bt.addMouseListener(new MouseAdapter()
		{
			public void mouseClicked(ActionEvent e)
			{
				if(e.getClickCount() == 2)		//双击判断
				{
					//方法区
				}
			}
		});
		*/
		txtf.addKeyListener(new KeyAdapter()
		{
			public void keyPressed(KeyEvent e)
			{
				if(e.getKeyCode() == KeyEvent.VK_ENTER)//监听是否为输入了Enter
				{
					e.consume();//********此处注意:::由于不接收enter符,会有提示音!当不希望某一字符输入时,可以使用该函数撤销输入的字符!
					showDir(txtf.getText());
				}
			}
		});

		openMenu.addActionListener(new ActionListener()//菜单的打开
		{
			public void actionPerformed(ActionEvent e)
			{
				FileDialog fd = new FileDialog(f, "打开文件");
				fd.setVisible(true);
				String dir = fd.getDirectory();//获取路径
				String name = fd.getFile();
				if((dir==null) || (name==null))
					return;
				else
					showText(dir+name);			//操作
				return;
			}
		});
		saveMenu.addActionListener(new ActionListener()
		{
			public void actionPerformed(ActionEvent e)
			{
				FileDialog fd = new FileDialog(f, "打开文件", FileDialog.SAVE);
				fd.setVisible(true);
				String dir = fd.getDirectory();
				String name = fd.getFile();
				if((dir==null) || (name==null))
					return;
				else
					saveText(dir+name);
				return;
			}
		});
		exitMenu.addActionListener(new ActionListener()
		{
			public void actionPerformed(ActionEvent e)
			{
				System.exit(0);
			}
		});
	}
	public void showDir(String path)		//列出目录及文件的文本信息
	{
		if(path.equals(""))
		{
			txta.setText("目录不能为空!");
			return;
		}
		File dir = new File(path);
		if(!dir.exists())
			txta.setText("文件目录"+txtf.getText()+"不存在!");
		else if(!dir.isDirectory())
			txta.setText("只存在文件,不存在目录!");
		else
		{
			txta.setText("");
			String[] str = dir.list();
			for(String s: str)
				txta.append(s+"\r\n");
		}
		return;

	}
	public void showText(String path)		//读取文件的文本信息
	{
		try
		{
			BufferedReader bufr = new BufferedReader(new FileReader(path));
			txta.setText("");
			String str = null;
			while((str=bufr.readLine()) != null)
				txta.append(str+"\r\n");
			bufr.close();
		}
		catch (IOException e)
		{

		}
		return;

	}
	public void saveText(String path)		//保存大文本框中的文本信息
	{
		try
		{
			BufferedWriter bufw = new BufferedWriter(new FileWriter(path));
			bufw.write(txta.getText());
			bufw.close();
		}
		catch (IOException e)
		{

		}
		return;

	}
}


分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics