Java 申请已读及未读书籍

Java 申请已读及未读书籍,java,swing,Java,Swing,我对Java和编程相当陌生,希望对我要编写的这个测试应用程序有一些建议 总体思路是,它将包含一个图书列表,其中包含标题,作者,日期戳,以及已读或未读状态 当读取状态变为真时,必须应用日期戳 它将有一个GUI,以表格格式按字母顺序显示书籍。如果可能,我希望列名称是可过滤的,即如果单击标题,它应该按标题排序,再次单击,然后按降序排序。与作者和状态类似 我想有一个搜索字段,可以根据标题和作者搜索书籍。 我还希望能够通过单击弹出窗口的按钮来添加书籍,以输入标题,作者,以及阅读状态 应用程序将在PC上运行

我对
Java
和编程相当陌生,希望对我要编写的这个测试应用程序有一些建议

总体思路是,它将包含一个图书列表,其中包含
标题
作者
日期戳
,以及
已读或未读
状态

读取状态
变为真时,必须应用
日期戳

它将有一个GUI,以表格格式按字母顺序显示书籍。如果可能,我希望列
名称
是可过滤的,即如果单击
标题
,它应该按
标题
排序,再次单击,然后按降序排序。与
作者
状态
类似

我想有一个
搜索
字段,可以根据
标题
作者
搜索书籍。 我还希望能够通过单击弹出窗口的按钮来添加书籍,以输入
标题
作者
,以及
阅读状态

应用程序将在
PC
上运行,因此我认为通过
序列化
来存储状态是可以的

我需要一些建议,我的计划是:

  • 在课堂上写这本书

    创建它的字段、构造函数、getter和setter等

  • 编写库类

    包含图书馆中书籍的列表(此处最好使用什么?
    ArrayList
    etc?) 将构建GUI、读入对象并填充用于表信息的库的worker类。我正在粗略地构建这样一个表,我会使用
    JTable

一列必须是一个带有
状态的复选框,可以单击该复选框并弹出一个确认更改状态的弹出窗口


我相信,一旦得到反馈,我还会有更多的问题:)谢谢你的建议。

[我已经创建了一个解决方案的草稿,请查看并根据需要进行改进][1]


[1]:

到目前为止,你的想法还不错。首先实现它,然后进一步思考。使用接口。对于您的
类,我将使用一个。我认为不应该存在重复的
Book
实例,然后选择一个(没有重复项的
Collection
的子类)。作为
集合的实例化
可以使用
ArrayList
LinkedList
。至于
集合
TreeSet
HashSet
LinkedHashSet
。感谢您提供的JTABLE,我如何通过选择column对其进行排序?另外,如何将库集合中的对象放入多维数组以填充表?谢谢你的建议。通过我计算出的列进行排序:bookTable.setAutoCreateRowSorter(true);这里有一个复选框示例,谢谢,非常好,虽然不是我要寻找的100%,而且我想自己编写大部分代码,但做得很好。我几乎所有的东西都在工作。我扩展了DefaultTable模型,覆盖了isCellEditable和getColumnClass方法,现在我的表中有了我想要的复选框。我现在的问题是,我需要它来实际影响对象的状态。因此,如果我选中一个框,它必须将该字段更改为true并更新表视图。有什么建议吗?如果你发布代码会有帮助的。我认为您可以使用操作处理程序,并在该处理程序的方法中,使用getter/setter更新状态。