购买
下载掌阅APP,畅读海量书库
立即打开
畅读海量书库
扫码下载掌阅APP

2.4 公共类设计

开发项目时,编写公共类可以减少重复代码的编写,进而提高代码的重用性和维护性。文件批量操作工作中有两个公共类:自定义表格类和选项卡面板工厂类。其中:自定义表格类重写了编辑单元格的方法,以防止表格内容被修改;选项卡面板工厂类可以登记所有功能面板,为主面板提供选项卡中的功能面板。下面将详细介绍这两个类。

2.4.1 自定义表格类

MyTable是项目中的自定义表格类,该类继承自JTable类。这个自定义表格用于显示处理文件的结果,例如在批量移动功能面板中显示任务列表,在批量更名功能面板中显示文件更名前的名称和更名之后的名称。

自定义表格使用TableModel表格数据模型类来为表格添加数据,因此需要重写使用TableModel类型参数的构造方法,同时重写无参构造方法以保证此构造方法可以正常使用。两个构造方法的代码如下:

自定义表格的主要特点是防止用户随意修改表格中的数据。为了实现这一点,需要重写父类中用于判断单元格是否可编辑的isCellEditable()方法,并使其默认返回false,表示任何单元格都不可编辑。重写isCellEditable()方法的代码如下:

2.4.2 选项卡面板工厂类

JTabbedPaneFactory类是项目中的选项卡面板工厂类,它的职责是提供已完成开发的功能面板对象。该类可以让主窗体脱离创建功能面板对象的代码,从而实现主窗体与各功能面板之间的解耦,如果添加或删除新功能面板,只需修改工厂类中的代码,而无须对主窗体中的代码进行任何改动。

JTabbedPaneFactory类提供了一个私有的静态属性——panelMap。这个属性是Map键值对类型。在这个键值对中:键的泛型使用String字符串类型,用于记录功能面板的选项卡标签内容;值的类型使用JPanel面板类型,用于保存该选项卡下显示的面板对象。代码如下:

private static final Map<String, JPanel> panelMap = new HashMap<>();

因为属性是私有的,所以需要提供对应的getter方法供外部类使用,方法代码如下:

又因为该属性是静态的,所以需要使用静态代码块为键值对赋值。在静态代码块中,创建所有的功能面板标签和面板对象,并通过键值对的put()方法对它们进行保存。代码如下: UCN5+viGc/HbNbk7P4UtzQVqfvPobYCWDQRIDfHnB1NS6SXThkLlIgG4cyuEV4NI

点击中间区域
呼出菜单
上一章
目录
下一章
×