<address id="hfplr"></address>
        <sub id="hfplr"></sub><address id="hfplr"></address>

          <address id="hfplr"></address>

          Java实现记事本|IO流/GUI

          Java实现记事本

          题目

          利用GUI实现一个简单的记事本(notepad),即打开文件,文字内容显示在界面上;
          允许对文字内容进行编辑,并可以保存到文件。

          代码

          class notPadcontainer{
              
              public Boolean visible = false;
              //组件定义成属性
              public JFrame notPadFrame;
              public JMenuBar notPadMenuBar;
              public JMenu firMenu;
              public JMenu secMenu;
              public JMenu thirMenu;
              public JMenu fourMenu;
              
              public JMenuItem buildItem;
              public JMenuItem openItem;
              public JMenuItem reserveItem;
              public JMenuItem paperSetItem;
              public JMenuItem clearItem;
              public JMenuItem aboutItem;
              public JMenuItem fontItem20;
              public JMenuItem fontItem40;
              public JTextArea textArea;
              public JScrollPane textScrollPane;
              
               /*
                * 无参构造函数 
                * 创建组件 初始化组件
               */
              notPadcontainer(){
                  //窗体Frame
                  this.notPadFrame = new JFrame("notePad by fishers"); //设置窗体 名字为notePad
                  this.notPadFrame.setLayout(new BorderLayout()); //边界布局方式
                  this.notPadFrame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); //设置关闭框
                  this.notPadFrame.setSize(500,500); //设置窗口大小
          
                  //菜单组件
                  this.notPadMenuBar = new JMenuBar();
                  this.firMenu = new JMenu("文件");
                  this.thirMenu = new JMenu("字体");
                  this.secMenu = new JMenu("编辑");
                  this.fourMenu = new JMenu("帮助");
                  
                  
                  //create JMenuItem for the First menu
                  this.buildItem = new JMenuItem("新建");
                  this.openItem = new JMenuItem("打开");
                  this.reserveItem = new JMenuItem("保存");
                  this.paperSetItem = new JMenuItem("页面设置");
                  
                  //create JMenuItem for the sec thir four menu
                  this.clearItem = new JMenuItem("清空");
                  this.aboutItem = new JMenuItem("关于");
                  this.fontItem20 = new JMenuItem("字体20号");
                  this.fontItem40 = new JMenuItem("字体40号");
                  //文本组件
                  this.textArea = new JTextArea();
                  this.textScrollPane = new JScrollPane(textArea);
                  textArea.setFont(new Font("宋体",Font.PLAIN,20)); //默认20号字体
                  ItemAdd();
                  runListener();
              }
              
              //添加组件
              public void ItemAdd(){
                  
                  //添加JMenu到JMenuBar
                  notPadMenuBar.add(firMenu);
                  notPadMenuBar.add(secMenu);
                  notPadMenuBar.add(thirMenu);
                  notPadMenuBar.add(fourMenu);
                  
                  //添加JMenuItem到第一个菜单
                  firMenu.add(buildItem);
                  firMenu.add(openItem);
                  firMenu.add(reserveItem);
                  firMenu.add(paperSetItem);
                  secMenu.add(clearItem);
                  thirMenu.add(fontItem20);
                  thirMenu.add(fontItem40);
                  fourMenu.add(aboutItem);
                  
                  //notPadFrame中添加各个组件
                  this.notPadFrame.setJMenuBar(notPadMenuBar);
                  this.notPadFrame.add(textScrollPane,BorderLayout.CENTER);
              }
          
              
              
              /*
               * 事件监听代码部分
              */
              public void runListener() {
                  //新建文件 = 清空。。
                  buildItem.addActionListener( e -> {
                      textArea.setText("");
                  });     
                  
                  //打开文件
                  openItem.addActionListener(new ActionListener() {
                      @Override
                      public void actionPerformed(ActionEvent e) {
                          // TODO Auto-generated method stub
                          //设置弹出框 FileDialog
                          FileDialog saveFiledialog = new FileDialog(notPadFrame,"打开文件",FileDialog.LOAD);
                          saveFiledialog.setVisible(true);
                          String fileDir = saveFiledialog.getDirectory(); //拿到目录
                          String fileName = saveFiledialog.getFile(); //拿到文件名
          //              System.out.println(fileDir);
          //              System.out.println(fileName);
                          File openFile = new File(fileDir,fileName); //使用File类创建新文件对象
                          try {
                              FileReader freader = new FileReader(openFile); //字符流
                              StringBuffer tempBuffer  = new StringBuffer();//StringBuffer可变
                              int len = 0; //下面使用read方法读取
                              while((len = freader.read()) != -1) {
                                  tempBuffer.append((char)len); //append方法加入StringBuffer
                              }
                              String openString = new String(tempBuffer.toString());
                              textArea.setText(openString);
                              freader.close();//关闭流
                          } catch (FileNotFoundException e1) {
                              // TODO Auto-generated catch block
                              e1.printStackTrace();
                          } catch (IOException e1) {
                              // TODO Auto-generated catch block
                              e1.printStackTrace();
                          }
                      }
                  });
                  
                  //保存文件
                  reserveItem.addActionListener(new ActionListener() {
                      @Override
                      public void actionPerformed(ActionEvent e) {
                          // TODO Auto-generated method stub 
                          FileDialog saveFiledialog = new FileDialog(notPadFrame,"保存文件",FileDialog.SAVE);//父级frame 标题 mode
                          saveFiledialog.setVisible(true);
                          String fileDir = saveFiledialog.getDirectory();
                          String fileName = saveFiledialog.getFile();
                          System.out.println(fileDir);
                          System.out.println(fileName);
                          String ContentString = textArea.getText();
                          File saveFile = new File(fileDir,fileName);
                          try {
                              FileWriter fWriter = new FileWriter(saveFile); //使用字符流写文件
                              fWriter.write(ContentString); //写文件
                              fWriter.close(); //关闭流
                          }catch (IOException e1) {
                              // TODO Auto-generated catch block
                              e1.printStackTrace();
                          }
                      }
                  });
                  
                  //清空文件
                  clearItem.addActionListener( e -> {
                      textArea.setText("");
                  });
          
                  //监听关于
                  aboutItem.addActionListener(new ActionListener() {
                      @Override
                      public void actionPerformed(ActionEvent e) {
                          // TODO Auto-generated method stub
                          JFrame aboutFrame = new JFrame("关于"); //新建窗口
                          aboutFrame.setLayout(new BorderLayout());
                          aboutFrame.setSize(300,115);
                          aboutFrame.setDefaultCloseOperation(JFrame.HIDE_ON_CLOSE);//设置隐藏窗口
                          
                          
                          JPanel panel  = new JPanel();
                          JLabel label = new JLabel("不会换行、中文乱码的记事本");
                          JPanel panel2  = new JPanel();
                          JLabel label2 = new JLabel("Copyright ? 2019 fishers");
                          panel.add(label);
                          panel2.add(label2);
                          aboutFrame.add(panel,BorderLayout.CENTER);
                          aboutFrame.add(panel2,BorderLayout.PAGE_START);
                          aboutFrame.setVisible(true);
                      }
                  });
                  
                  fontItem20.addActionListener(e->{
                      textArea.setFont(new Font("宋体",Font.PLAIN,20));
                  });
                  
                  fontItem40.addActionListener(e->{
                      textArea.setFont(new Font("宋体",Font.PLAIN,40));
                  });
              }
              
              
              
              //setVisible:设置窗口显示
              public void setVisible(Boolean visible) {
                  this.visible = visible;
                  this.notPadFrame.setVisible(this.visible);
              }
          }
          
          public class notePad {
          
              public static void main(String[] args) {
                  notPadcontainer oneNote = new notPadcontainer();
                  oneNote.setVisible(true);
              }
          
          }
          相关文章
          相关标签/搜索
          每日一句
            每一个你不满意的现在,都有一个你没有努力的曾经。
          公众号推荐
             一个历史类的公众号,欢迎关注
          一两拨千金
          王中王今晚开什么生肖 射阳县| 新野县| 贵州省| 肃北| 麻栗坡县| 同心县| 陇西县| 中卫市| 海南省| 武定县| 长宁区| 镇坪县| 贵德县| 昔阳县| 保康县| 威远县| 民县| 栾川县| 永和县| 定日县| 云阳县| 都兰县| 武清区| 鹤岗市| 万荣县| 阳原县| 康保县| 于都县| 涟水县| 淄博市| 五台县| 大悟县| 五峰| 武冈市| 乐都县| 淮南市| 东方市| 五常市| 微山县| 沂源县| 勃利县| 涟源市| 沈丘县| 达拉特旗| 淮南市| 宜黄县| 富蕴县| 玉山县| 石屏县| 壶关县| 克什克腾旗| 石泉县| 荃湾区| 大姚县| 咸阳市| 贡嘎县| 秀山| 京山县| 山阴县| 太谷县| 蓬溪县| 滦平县| 洛宁县| 娱乐| 酒泉市| 进贤县| 许昌市| 农安县| 买车| 额敏县| 瓦房店市| 东乌珠穆沁旗| 洞头县| 岳阳县| 江华| 青岛市| 巧家县| 桂平市| 宜州市| 富源县| 老河口市| SHOW| 澄江县| 辽阳市| 怀柔区| 尼玛县| 秀山| 大庆市| 郸城县| 定边县| 呼伦贝尔市| 汕尾市| 来安县| 赤城县| 白山市| 德清县| 扎兰屯市| 闻喜县| 宿松县| 宜宾市| 亚东县| 探索| 镇安县| 隆德县| 延长县| 普格县| 莱西市| 宁安市| 辽宁省| 墨江| 万全县| 丽江市| 隆化县| 保康县| 文山县| 马边| 桦甸市| 延津县| 惠东县| 华宁县| 班戈县| 黄梅县| 乐清市| 海原县| 蓬溪县| 晋宁县| 柏乡县| 徐汇区| 祁阳县| 冕宁县| 皮山县| 兰州市| 碌曲县| 内黄县| 连江县| 凤阳县| 武功县| 莱阳市| 青铜峡市| 民勤县| 永济市| 化德县| 长丰县| 海伦市| 吉木乃县| 泌阳县| 凯里市| 三台县| 安福县| 河北省| 年辖:市辖区| 保定市| 中牟县| 昌平区| 武陟县| 津南区| 凌源市| 涿州市| 怀柔区| 西贡区| 区。| 哈尔滨市| 全南县| 铜山县| 江安县| 调兵山市| 拜泉县| 旬邑县| 临安市| 连平县| 繁峙县| 浮山县| 甘南县| 罗甸县| 岳阳市| 恩平市| 嘉兴市| 息烽县| 顺昌县| 应用必备| 屏东市| 塔河县| 永泰县| 云阳县| 大渡口区| 衡山县| 会理县| 获嘉县| 永清县| 拉萨市| 舞钢市| 乾安县| 绥宁县| 蒙自县| 门源| 太原市| 齐河县| 定远县| 色达县| 定结县| 宣汉县| 泌阳县| 黑龙江省| 贡嘎县| 云龙县| 揭阳市| 荃湾区| 吉林省| 芒康县| 迭部县| 宁德市| 大竹县| 高尔夫| 吴旗县| 白河县| 尼木县| 盐边县| 政和县| 西青区| 苍梧县| 新丰县| 馆陶县| 夏津县| 沾益县| 梨树县| 南安市| 余江县| 西峡县| 合川市| 额敏县| 青铜峡市| 焦作市| 龙泉市| 苗栗县| 莱芜市| 芦山县| 佛教| 布拖县| 昭苏县| 固安县| 龙泉市| 仁寿县| 府谷县| 扶风县| 海晏县| 井研县| 宝兴县| 吴川市| 密山市| 东方市| 晋州市| 庐江县| 苍溪县| 长春市| 威海市| 武隆县| 鄂尔多斯市| 思南县| 简阳市| 临夏县| 共和县| 万源市| 会昌县| 英吉沙县| 巩义市| 靖边县| 武夷山市| 上虞市| 西畴县| 疏勒县| 尚志市| 正镶白旗| 同仁县| 靖远县| 南昌市| 巨鹿县| 库车县| 章丘市| 和政县| 罗江县| 常山县| 石渠县| 靖宇县| 海口市| 漾濞| 丰都县| 公安县| 政和县| 长沙县| 长兴县| 门源| 秀山| 镇宁| 伊宁县| 社旗县| 葵青区| 清徐县| 利辛县| 遂溪县| 宁津县| 肇庆市| 万州区| 金阳县| 谢通门县| 日喀则市| 三穗县| 宜兰县| 保靖县| 翼城县| 通山县| 卓尼县| 增城市| 礼泉县| 焉耆| 周口市| 沾化县| 临朐县| 晋江市| 叶城县| 宣汉县| 崇阳县| 嵊州市| 东乡族自治县| 昌邑市| 如皋市| 若尔盖县| 武隆县| 溧水县| 甘德县| 枣强县| 衡阳市| 新野县| 赤壁市| 诸城市| 西峡县| 新民市| 二手房| 丘北县| 永康市| 隆德县| 龙泉市| 扶绥县| 温泉县| 定襄县| 霸州市| 彰化县| 应用必备| 广宁县| 于都县| 中卫市| 灵台县| 凤冈县| 周口市| 柯坪县| 兴文县| 青浦区| 忻城县| 蕉岭县| 水富县| 于田县| 葵青区| 肃南| 淄博市| 高州市| 田东县| 井冈山市| 平泉县| 石屏县| 翁牛特旗| 达拉特旗| 晋江市| 彭山县| 山阳县| 永登县| 娱乐| 利津县| 当阳市| 彰武县| 葫芦岛市| 白水县| 瑞安市| 关岭| 陈巴尔虎旗| 财经| 三河市| 高邮市| 巴中市| 额济纳旗| 江城| 汉沽区| 建宁县| 万全县| 衢州市| 文安县| 织金县| 泰安市| 天津市| 汶上县| 无为县| 若尔盖县| 漾濞| 平谷区| 湾仔区| 昌图县| 安徽省| 灌南县| 阳城县| 芷江| 沁阳市| 忻州市| 女性| 河南省| 城固县| 安泽县| 耒阳市| 玛沁县| 鄂尔多斯市| 大冶市| 论坛| 邢台县| 乌海市| 汝城县| 眉山市| 西平县| 邵东县| 德惠市| 攀枝花市| 肥乡县| 峡江县| 永靖县| 台州市| 道孚县| 达日县| 务川| 丰顺县| 钦州市| 沙洋县| 浠水县| 富裕县| 崇文区| 贵港市| 乐清市| 黄陵县| 罗平县| 宜州市| 循化| 年辖:市辖区| 绍兴县| 广水市| 大渡口区| 内乡县| 靖江市| 海门市| 阿尔山市| 城市| 九龙坡区| 黔西| 紫金县| 五台县| 锦屏县| 周口市| 临武县| 启东市| 乐山市| 沭阳县| 玉溪市| 九龙坡区| 鄂托克前旗| 平罗县| 肇东市| 黄龙县| 且末县| 师宗县| 武穴市| 兴国县| 宜宾市| 抚宁县| 松溪县| 临朐县| 綦江县| 铜梁县| 辰溪县| 柳江县| 延庆县| 青铜峡市| 丰顺县| 辽中县| 蓝田县| 乾安县| 永善县| 呼伦贝尔市| 迭部县| 抚宁县| 高邑县| 谢通门县| 赤水市| 南充市| 蒙山县| 上饶市| 麻阳| 许昌市| 丰镇市| 冷水江市| 阳泉市| 湘阴县| 探索| 梨树县| 崇仁县| 石棉县| 白河县| 天水市| 平泉县| 太原市| 南开区| 车致| 工布江达县| 黑山县| 桦南县| 商都县| 西盟| 宁明县| 大连市| 雷州市| 富阳市| 壤塘县| 买车| 张家口市| 保康县| 甘德县| 交城县| 汨罗市| 望谟县| 平凉市| 张家口市| 镇原县| 水城县| 安化县| 水城县| 祁东县| 瓦房店市| 应用必备| 盐边县| 浮山县| 嘉禾县| 苗栗县| 白山市| 湘潭县| 北辰区| 浦东新区| 浙江省| 肥城市| 沅江市| 张家界市| 湛江市| 阳新县| 于都县| 巴彦淖尔市| 黑山县| 大厂| 黄山市| 阿合奇县| 德阳市| 西城区| 阳江市| 彩票| 山西省| 丹阳市| 盐城市| 旌德县| 射阳县| 和龙市| 公主岭市| 通道| 邵东县| 安图县| 玛沁县| 海南省| 洪泽县| 芷江| 顺昌县| 枣阳市| 临夏县| 进贤县| 钟祥市| 内江市| 阳泉市| 沭阳县| 怀远县| 哈尔滨市| 准格尔旗| 深水埗区| 名山县| 福州市| 佛学| 诸城市| 南宫市| 防城港市| 陈巴尔虎旗| 中卫市| 应城市| 富川| 吉安县| 五指山市| 天祝| 峨山| 西盟| 余庆县| 华池县| 淳化县| 青铜峡市| 馆陶县| 吴堡县| 大渡口区| 扬中市| 无极县| http://jx1870bev.fun http://wap.jx1870bagv.fun http://3g.jx1870cruisev.fun http://www.jx1870dotv.fun http://3g.jx1870agev.fun http://www.jx1870earnv.fun http://3g.jx1870countv.fun http://m.jx1870colourv.fun http://3g.jx1870boundv.fun http://wap.jx1870chairv.fun http://www.jx1870costv.fun http://m.jx1870budgetv.fun http://3g.jx1870beatv.fun http://3g.jx1870cutv.fun http://wap.jx1870affectv.fun http://wap.jx1870consentv.fun http://wap.jx1870carryv.fun http://3g.jx1870colourv.fun