我正在构建一个程序,该程序收集匹配特定条件集的几个文件列表,并根据源,文件类型等对它们进行适当的处理。我希望它能够找到并显示文件将它们放在易于阅读的列表中。用户将从列表中选择要处理的文件,然后单击“启动骚动”按钮(如果需要)。
现在,我制作了一个名为DrawingFile的类,如下所示:
class DrawingFile {
private static String fileName, fileType;
private static boolean actionable;
private static Path filePath;
public DrawingFile (Path path){
setFilePath(path);
setFileName(stripExtension(path));
setFileType(getExtension(path));
setActionable(true);
}
...(methods omitted to save time)...
我的计划最初是创建一个JTable,该JTable基于DrawingFiles列表进行填充,对象中的每个字段都是表中的一列,但Path除外,Path不会显示在表中。从那里,用户将单击一个复选框,该复选框将确定是否要处理文件。
首先,我的问题源于我对编程还比较陌生。这是我编写的第一个人们将要使用的程序,它也具有任何类型的UI。
因此,我的问题是:
我上面的计划有任何意义吗?
将表放在其中而不是在容器内创建一系列JPanels会更有意义吗? (这似乎不是最佳做法)
如果我确实使用该表,是否应该取消DrawingFile类并将数据存储在TableModel中?
3a。如果是这样,有什么办法可以在表格中隐藏路径?
在表上未选中
actionable
布尔值时,如何更改?以1到10的比例,我到底有多想?
最佳答案
如果我理解正确,您将拥有一个DrawingFile对象列表,并且希望将此列表显示为JTable,其中每一行代表该列表的一个对象。是的,这很合理。
否。一张桌子非常适合。
不能。您应该创建一个自定义的DrawingFileTableModel类,扩展AsbtractTableModel,并使用对象列表作为实现该方法的源。 Google的“ Java教程JTable”,您可以在the official tutorial中找到一个示例。
通过确保isCellEditable()
对于该列和行返回true,并通过正确实现setValueAt()
和getColumnClass()
方法。 Javadoc和本教程是您的朋友。当setValueAt()
用boolean列的索引调用时,应在后备列表中给定行索引处存储的DrawingFile中设置其新值。用布尔列的索引调用getColumnClass()
时,应返回Boolean.class
。