代码:

  1. import java.awt.*;
  2. import java.awt.event.*;
  3. import java.io.*;
  4. class MyMenu
  5. {
  6. //定义该窗体所需的组件,方便其他函数引用
  7. private Frame f;
  8. private Button btn; //按钮
  9. private Button btn1;
  10. private Label label; //标签
  11. private TextArea ta ; //文本区域
  12. private Menu fileMenu; //菜单
  13. private MenuBar bar;
  14. private MenuItem openItem,saveItem,closeItem; //子菜单
  15.  
  16. private FileDialog openDia,saveDia; //文件对话框
  17. private File file; //文件
  18. //构造器
  19. MyMenu(){
  20. init();
  21. }
  22. public void init(){
  23. f = new Frame("我的窗体及菜单框架");
  24. /*(所有静态属性设置)*/
  25. //对窗体进行基本设置
  26. f.setBounds(100,50,1200,1000);
  27. f.setLayout(new FlowLayout());
  28. f.setBackground(Color.gray);
  29. //组件(自定义)
  30. btn = new Button("退出");
  31. btn1 = new Button("按钮1");
  32. label = new Label("这是一个文本",Label.CENTER);
  33. ta = new TextArea("test",30,70,1);//最后一个参数设置为显示滚动条,1显示垂直滚动条,2显示横向滚动条,0全部显示。
  34.  
  35. bar = new MenuBar();
  36. fileMenu = new Menu("文件");
  37. //定义菜单项
  38. openItem = new MenuItem("打开");
  39. saveItem = new MenuItem("保存");
  40. closeItem = new MenuItem("退出");
  41. //将菜单项添加进菜单
  42. fileMenu.add(openItem);
  43. fileMenu.add(saveItem);
  44. fileMenu.addSeparator();
  45. fileMenu.add(closeItem);
  46. //将菜单已添加进菜单栏
  47. bar.add(fileMenu);
  48. f.setMenuBar(bar);
  49. //添加文件对话框
  50. openDia = new FileDialog(f,"我要打开",FileDialog.LOAD);
  51. saveDia = new FileDialog(f,"我要保存",FileDialog.SAVE);
  52. //组件属性设置
  53. label.setBackground(Color.pink);
  54. label.setFont(new Font("Dialog", Font.BOLD, 12));
  55. label.setSize(300,200);
  56. //将组件添加到frame中
  57. f.add(label);
  58. f.add(ta);
  59. f.add(btn);
  60. f.add(btn1);
  61. //加载窗体事件(所有响应事件)
  62. myEvent();
  63.  
  64. //显示窗体
  65. f.setVisible(true);
  66. }
  67.  
  68. private void myEvent(){
  69. /*规则:
  70. xxxListener(new xxxAdapter())
  71. xxxEvent e
  72. */
  73. //窗体关闭事件
  74. f.addWindowListener(new WindowAdapter()
  75. {
  76. public void windowClosing(WindowEvent e)
  77. {
  78. System.exit(0);
  79. }
  80. });
  81. //按钮响应事件
  82. btn.addActionListener(new ActionListener(){
  83. public void actionPerformed(ActionEvent e)
  84. {
  85. //按钮响应
  86. System.out.println("退出,按钮干的");
  87. System.exit(0);
  88. }
  89. });
  90. //按钮1响应事件
  91. btn1.addActionListener(new ActionListener(){
  92. public void actionPerformed(ActionEvent e)
  93. {
  94. //获取文本内容并显示
  95. String taContent =ta.getText();
  96. label.setText(taContent);
  97. }
  98. });
  99. //菜单事件:添加保存活动监听,
  100. saveItem.addActionListener(new ActionListener()
  101. {
  102.  
  103. public void actionPerformed(ActionEvent e)
  104. {
  105. //保存就是直接开启对话框
  106. //if(file==null)
  107. //{
  108. saveDia.setVisible(true);
  109.  
  110. String dirPath = saveDia.getDirectory();
  111. String fileName = saveDia.getFile();
  112. if(dirPath==null || fileName==null)
  113. return ;
  114. file = new File(dirPath,fileName);
  115. //}
  116.  
  117. try
  118. {
  119. BufferedWriter bufw = new BufferedWriter(new FileWriter(file));
  120.  
  121. String text = ta.getText();
  122.  
  123. bufw.write(text);
  124. //bufw.flush();
  125. bufw.close();
  126. }
  127. catch (IOException ex)
  128. {
  129. throw new RuntimeException();
  130. }
  131.  
  132. }
  133. });
  134.  
  135. openItem.addActionListener(new ActionListener()
  136. {
  137. public void actionPerformed(ActionEvent e)
  138. {
  139. openDia.setVisible(true);
  140. String dirPath = openDia.getDirectory();
  141. String fileName = openDia.getFile();
  142. // System.out.println(dirPath+"..."+fileName);
  143. if(dirPath==null || fileName==null)
  144. return ;
  145.  
  146. ta.setText("");
  147. file = new File(dirPath,fileName);
  148.  
  149. try
  150. {
  151. BufferedReader bufr = new BufferedReader(new FileReader(file));
  152.  
  153. String line = null;
  154.  
  155. while((line=bufr.readLine())!=null)
  156. {
  157. ta.append(line+"\r\n");
  158. }
  159.  
  160. bufr.close();
  161. }
  162. catch (IOException ex)
  163. {
  164. throw new RuntimeException("读取失败");
  165. }
  166.  
  167. }
  168. });
  169.  
  170. closeItem.addActionListener(new ActionListener()
  171. {
  172. public void actionPerformed(ActionEvent e)
  173. {
  174. System.exit(0);
  175. }
  176. });
  177. }
  178.  
  179. public static void main(String[] args){
  180. new MyMenu();
  181. }
  182. }

效果:

java GUI简单记事本的更多相关文章

  1. Java实现简单记事本

    代码实现: import java.awt.BorderLayout; import java.awt.Container; import java.awt.event.ActionEvent; im ...

  2. Java GUI 简单台球游戏模型

    完成效果: 1 package com.neuedu.test; 2 3 import java.awt.Frame; 4 import java.awt.Graphics; 5 import jav ...

  3. 编写运行最简单的java程序——使用记事本编写java程序

    第一个java程序--使用记事本编辑 经过上篇文章的java环境搭建成功的小伙伴们可以在自己的计算机上编写属于自己的java程序了yo~ 还没有搭建环境变量的小伙伴请转移到上一篇的随笔中去完成搭建. ...

  4. java GUI (课堂笔记)

    关于java GUI Swing组件: JFrame 窗口组件 JLabel 标签 JButton 按钮组件 JTextField 单行文本框 系统控件(JDK自带) 自定义控件(模仿系统控件): 继 ...

  5. java Gui编程 事件监听机制

    1.     GUI编程引言 以前的学习当中,我们都使用的是命令交互方式: 例如:在DOS命令行中通过javac java命令启动程序. 软件的交互的方式:   1. 命令交互方式    图书管理系统 ...

  6. paip.java gui swt/jface 最佳实践

    paip.java gui swt/jface 最佳实践 1. 工具:Eclipse +jigloo4 1 2. 安装插件: 1 1. IMPORT swt lib 2 2. 新建立窗体 2 3. 运 ...

  7. [置顶] java Gui 键盘监听事件

    简单写一个java Gui键盘监听事件,实现的效果就是按下键盘控制台输出你按下的键.比如:按下A控制台就输出A 效果如图: 以下把实现的效果分为几个步骤: 1.新建一个窗体类继承窗体: 2.给这个窗体 ...

  8. IntelliJ IDE 开发Java GUI 入门

    j主要对java 的GUI相关知识进行简单的介绍和总结,整个博客按照创建一个java GUI的顺序进行介绍,期间穿插讲解用到的java Swing的布局.控件等相关知识.本博客所进行的讲解及工程的创建 ...

  9. Java GUI编程4---标签组件JLabel

    Java GUI编程4---标签组件JLabel 2018年06月11日 22:06:58 蓝蓝223 阅读数 12103更多 个人分类: Java书籍摘抄 所属专栏: Java Swing图形界面 ...

随机推荐

  1. HTML学习(五)链接

    1.创建文本链接 <html> <body> <p> <a href="/index.html">本文本</a> 是一个 ...

  2. js函数——setinterval和setTimeout

    1.window.setTimeout方法 该方法可以延时执行一个函数,例如: <script language="JavaScript" type="text/j ...

  3. iOS开发之监听键盘高度的变化 分类: ios技术 2015-04-21 12:04 233人阅读 评论(0) 收藏

    最近做的项目中,有一个类似微博中的评论转发功能,屏幕底端有一个输入框用textView来做,当textView成为第一响应者的时候它的Y值随着键盘高度的改变而改变,保证textView紧贴着键盘,但又 ...

  4. StackExchange.Redis 官方文档(二) Configuration

    配置 有多种方式可以配置redis,StackExchange.Redis提供了一个丰富的配置模型,在执行Connect (or ConnectAsync) 时被调用: var conn = Conn ...

  5. 递归添加 另一个ds 里的DataRow 时 报错:该行已经属于另一个表。

    public void create_tree(DataSet ds, int parentid)        { DataSet newds = new DataSet();            ...

  6. 【Xilinx-Petalinux学习】-02-建立PetaLinux工程

    前面我已经把PetaLinux成功安装到了Ubuntu虚拟机当中了,接下来就要实际操作,将PetaLinux移植到我们自己的硬件平台当中去. step1:硬件描述文件 有两种PetaLinux工程建立 ...

  7. Django with uWSGI and nginx

    Reference:http://uwsgi-docs.readthedocs.org/en/latest/tutorials/Django_and_nginx.html Setting up Dja ...

  8. ajax请求获取到数据,但是仍然不能触发success方法

    这个问题消耗了我的很多时间. 原来是因为.php文件中的 echo echo json_encode($k);  后面少加了个exit; 因为echo echo json_encode($k); 之后 ...

  9. Zepto.js-事件处理

    http://www.webdevs.cn/article/68.html     web开发网 事件 $.Event $.Event(type, [properties]) ⇒ event 创建并初 ...

  10. Angular - - $sce 和 $sceDelegate

    $sce $sce 服务是AngularJs提供的一种严格上下文转义服务. 严格的上下文转义服务 严格的上下文转义(SCE)是一种需要在一定的语境中导致AngularJS绑定值被标记为安全使用语境的模 ...