黑马程序员_图形用户界面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;elseshowText(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;elsesaveText(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;}
}
黑马程序员_图形用户界面GUI_简单应用相关推荐
- 黑马程序员_毕向东_Java基础视频教程_Java基础学习知识点总结
黑马程序员_毕向东_Java基础视频教程 Java基础学习知识点总结 2016年01月06日 day01 一.基础知识:软件开发 1.什么是软件?软件:一系列按照特定顺序组织的计算机数据和指令的集合 ...
- 黑马程序员_异常(老毕视频总结及《疯狂java》补充)
----------------------<ahref="http://edu.csdn.net"target="blank">ASP.Net+A ...
- 黑马程序员_石头迷阵小游戏
黑马程序员_石头迷阵小游戏 源代码 一些说明: 1)这些是我看b站黑马程序员的视频,自己手打的,想分享一下,如果有侵权啥的请联系我,马上删除 2)一些比较重要的我都有给注释 3)工具idea idk版 ...
- 解析python网络爬虫pdf 黑马程序员_正版 解析Python网络爬虫 核心技术 Scrapy框架 分布式爬虫 黑马程序员 Python应用编程丛书 中国铁道出版社...
商品参数 书名:Python应用编程丛书:解析Python网络爬虫:核心技术.Scrapy框架.分布式爬虫 定价:52.00元 作者:[中国]黑马程序员 出版社:中国铁道出版社 出版日期:2018-0 ...
- 黑马程序员_基础测试
-------android培训.java培训.期待与您交流! ---------- 黑马程序员训练营基础测试题及个人代码(包含思路.步骤和基本注释) 1. 编写程序计算12+22+32+....+1 ...
- 黑马程序员_面向对象
java是面向对象的编程,下面我想通过自己对java的学习,来谈谈对面向对象的理解. 给大家说一个非常熟悉的例子:老张开车去东北.用面向对象的方式考虑这个问题:车,找个司机,然后告诉司机我要 ...
- 黑马程序员_集合总篇_基础之重点
------- <a href="http://www.itheima.com" target="blank">android培训</a> ...
- 黑马程序员_音乐(视频)播放器学习
---------------------- ASP.Net+Unity开发..Net培训.期待与您交流! ---------------------- 1.本节主要学习了音乐播放器的简单制作,在此篇 ...
- 黑马程序员_面试题(一)交通灯管理系统
android培训.java培训.期待与您交流! [Road类]: 每个Road对象都有一个name成员变量来代表方向,有一个vehicles成员变量来代表方向上的车辆集合. 在Road对象的构造方法 ...
最新文章
- 单片机节日彩灯实训报告_单片机课程设计(节日彩灯控制)
- 为什么使用依赖注入?
- db2设置默认schema_DB2中设置当前会话的Schema
- 两个线程如何交替执行,一个输出偶数一个输出奇数?
- 目录和文件管理(一)
- ABP入门系列(1)——通过模板创建MAP版本项目
- 窗口大小改变时,显示内容的处理(正投影情况)
- 【医疗影像处理】使用前景像素的均值和方差(mean,std)对图像进行归一化(背景像素为0)【numpy-code】
- axios.js post 后台木有数据
- java jpanel 叠加_java之JFrame、JPanel混合布局-Go语言中文社区
- 【图像去噪】基于matlab维纳滤波图像去噪【含Matlab源码 725期】
- CefSharp 知道这些就完事了
- 如何换ionic里面的图标
- 我走过最长的路,就是XMX的套路
- 华尔街“是”世界经济关键角色的原因
- 搭建react项目并配置路由
- JAVA静态代理与动态代理(JDK和CGLIB)
- 月薪过万应届生的10个忠告,抽点时间看看,真心受用!!
- ccs中c语言定义布尔常量,CCS中寄存器定义方法
- word中如何在表格上方加入一行以及英文如何设置自动断字
热门文章
- 微信小程序跳转页面带参数
- Chrome浏览器,就是我所需要的浏览器
- 编译thingsboard 3.3.3过程
- Cloudera的数据科学家认证考试
- 数据库泰斗DeWitt:Shared-nothing架构落幕,Shared-storage架构归来
- VS2017+Opencv4.2.0 用HOG+SVM实现INRIA行人检测 报错[ INFO:0] global
- windows server 2012 r2 standard 通过堡垒机远程桌面服务器报错Remote Desktop Service CALs Request Failed
- 雷达感应模组,自动播放讲解仪雷达应用,雷达传感器技术
- Origin: 气泡图+颜色映射图
- 陶哲轩实分析 2.3节 习题试解