2011-08-28 154 views
2

有人可以给我一个建议,如何简单有效地使数据库中包含的目录的GUI表示。现在,使用SQL查询获取信息是一回事。我可以做到这一点。 事实上,使用单独的小例子,我可以将一个文件与他的信息一起放入数据库中,我可以将该文件从数据库中取出。事情是我只是在没有GUI的情况下这样做,只是为了测试它是否工作。帮助Java程序(Swing +数据库)

现在我需要一个这个GUI,我真的不知道从哪里开始。我是否使用JTable,JList或其他东西?此外,我想我需要一个多维数组,因为我有,例如,文件的id,name_of_file和大小。

所以我需要不同的类型把它们放在:int,String和int。 此外,我需要显然隐藏用户的文件的id,但同时保留它,以便能够引用它。

如何将它隐藏在GUI组件中?

所以,假设我有一个包含这些列的文件的数据库表: id,name,size,binary_of_file。

我的真实表有更多的列,比如父目录的id,所有者的id等,但现在这并不重要。

所以,我告诉数据库给我有关文件的所有信息(除了它的二进制文件,因为我只想列出文件):

... 
ResultSet rs = statementObject.executeQuery("SELECT id, name, size FROM Files;"); 
while(rs.next()){ 
    //Where do I store the values in? Which GUI component and how? 
... 

我想我需要将包含该组件的JPanel的那将从数据库中显示我的文件。什么组件?请帮忙!

+2

请参见[如何使用表](http://download.oracle.com/javase/tutorial/uiswing/components/table.html)。 – trashgod

+0

@trashgod:仔细回顾了这个问题的答案和评论后,我开始怀疑OP没有遵循链接。 :-( –

回答

4

听起来你想使用JTable,它有一个TableModel接口,你可以实现它来适应你的结果集。


也请按照文档顶部的链接。到创建表模型

+0

例如,['JDBCAdapter'](http://www.di.unito.it/~giovanna/DIDATTICA/aa0405/SpDB-L/esercizi/8-gui/TableExample/src/JDBCAdapter.java) – trashgod

+0

JTable是否可以显示某些信息,如名称,大小等,并隐藏其他与数据库中文件对应的id? – aarnes

+0

*“JTable是否显示某些信息...并隐藏其他”*是。它取决于[TableModel](http://download.oracle.com/javase/7/docs/api/javax/swing/table/TableModel.html)关于什么和不包括。正如我一直说的: - *“请参阅链接代码(在我的答案中)作为示例。”*您是否尝试过该代码?你看过它是如何工作的吗? –

4

也许组合JList/JTable组件可以满足这种需求。

这是FileBro的GUI的屏幕截图。

我的想法是左边的JTree将代表数据库的“目录”和表(名称)。右侧的JTable将包含所选表格的数据。更改Locate Open Edit Print按钮Create Update Delete以及下方的面板,以显示记录的详细信息,并且它将成为DB CRUD组件的开始。

+0

看起来不错,但JTree能够显示数据库文件,还是只能够“看到”真实文件?如何从我发布的示例SQL中添加信息? – aarnes

+0

'JTree'可以包含任何对象。它在屏幕上看起来像是渲染器。有关示例,请参阅链接的代码。 –

+0

匿名传球者+1 – mKorbel