zoukankan      html  css  js  c++  java
  • swing做一个简单的记事本(有菜单的样式、右键弹出菜单、以及实现“新建”和“打开”功能)每部分的实现

    swing做一个简单的记事本(有菜单的样式、右键弹出菜单、以及实现“新建”和“打开”功能)每部分的实现

      

    1.继承窗体JFrame

    构造方法里设置窗体的一些基本设置:窗体标题、窗体退出模式、窗体大小(默认大小系数:800,600),窗体居中。其余初始化设置封装成一个方法initComponents();以及有一个事件initEvents();

     

    2.设置菜单样式:

    2-1、首先,我们实例了一个菜单栏的对象JmenuBar,并且先设置添加到本对象里this.setJMenuBar(menubar)。

    2-2、然后通过观察,我们定义了一个一维数组String[ ]strMenu存放菜单文字、一个二维的String[ ][ ] strMenuItems:存放每个菜单里的菜单项目文字。

    ps:这里的我们把菜单项里的分割线,暂时用“-“标记。

    2-3、通过双层for循环实现外层循环菜单栏添加菜单,内层循环菜单添加菜单项。

     

     

    (ps:1.处理“null“,为continue,2、处理“-“为”添加分割线JSeparator;3、可以增加点花样,即增加快捷键设置:(通过菜单项.setMnemonic(‘某个快捷键字符’));

    4,自动换行的话:增加点花样:设置复选框:先实例化带上文字的复选框菜单项对象,然后把复选框添加到菜单里:)

    3.设置带滚动条的文本域

    3-1、实例化文本域对象,设置实现文本能够换行,需要设置一下文本域:通过调用文本域的.setLineWrap(true);方法。

    3-2、再实例化滚动面板的同时把文本域控件作为参数传入,

    3-3、 然后设置滚动面板的垂直滚动条。

     

    4.菜单样式已经完成,需要实现添加事件

    由于事件越来越复杂,我们选择封装事件到一个外部类里,需要用的时候再实例外部类。为了在外部类里实现操作当前的窗体(控件)类,我们定义了一个窗体对象属性,并且通过构造方法,以参数的形式,把窗体传到外部类里来操作。而在窗体类里实例化外部类时把自身当作参数,就可以使用外部类的操作啦,例如在菜单项里添加事件)

     

     

    外部类里:

    4-1.事件外部类实现ActionListener,

    事件外部类里定义了一个窗体对象属性,并且通过构造方法,把窗体类对象作为参数传入来赋值到外部类的窗体对象属性。

     

    4-2.外部类添加事件处理方法:这里我们根据按钮的文本,做出不同处理。通过事件对象的.getActionCommand()获取按钮的文本:

    4-3、根据文本做出不同的处理:

    新建:清空文本框;

    打开:先打开显示出文件选择对话框JFileChooser ,用户选择好文件后,读取用户选择文件的内容,然后显示内容到文本域(封装一个文件打开方法和封装一个文件读取操作工具类)

              ◾文件打开方法:

    ①实例化文件选择对话框JFileChooser的同时,默认当前文件路径为“.”;

    ②显示打开对话框,设置父窗体为我们定义的窗体对象:调用.showOpenDialog(窗体作为参数);   

    ③获取用户选择的文件,通过.getSelectedFile();

    ④判断用户所选的文件是否为空,不空则调用文件读取工具类的读取方法。

    ⑤调用Object.IsNull(读取的内容),判断读取的内容是否存在,存在设置到窗体的文本域里。

     

              ◾文件读取操作工具类:

    ①     创建一个读取文件的静态方法(参数是文件路径),返回值是读取文件的内容。

    ②     创建传入的文件路径的文件,然后判断文件是否存在 .exists( )判断。

    ③     定义一个StringBuilder 的变量content,把读取到的内容返回。

    ④     开始读取啦:通过封装了FilleRearder的BufferReader一行一行读取,然后添加到content里,这里希望读取的时候添加换行,可以加上System.getProperty(“line.separator”);

     

    字体字体的话,就实现修改字体颜色:

    ①     实例化一个颜色选择对话框对象

    ②     打开显示颜色选择对话框

    ③     获取用户选择的颜色

    ④     设置到窗体的文本域的字体前景色

     

    5.实现右键弹出菜单:

    1)实例化右键弹出菜单:JpopupMenu

     

    2)右键菜单添加菜单项:JMenuItem

    3)添加右键鼠标触发菜单事件:addMouseListener(鼠标适配器对象MouseAdapter---实现mouseClicked()方法

     

     

  • 相关阅读:
    正则匹配、替换
    C# 算法
    .Net Core 初体验及总结(内含命令大全)
    docker 开放 2375端口
    docker 中 mysql group by 报错
    微信小程序全局变量改变监听
    Linux 中 IDEA 不能调试(Debug)项目
    JavaMail发送邮件后再通过JavaMail接收格式问题
    Linux 安装 RabbitMQ
    SpringBoot 集成 Swagger
  • 原文地址:https://www.cnblogs.com/shan333/p/14564855.html
Copyright © 2011-2022 走看看