2011-08-28 86 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