2013-05-29 118 views
-1

我正在製作一些帶有實時日誌的控制面板。 應該顯示最近15次登錄的實時日誌。如果有超過15條記錄,那麼我希望刪除最後一條記錄,並且最近發生的記錄顯示在列表頂部。如果登錄或註銷發生,我將使用觀察員更新日誌列表。我應該使用Queue數組還是有可能使它與swing?如果可能的話,那麼如何?提前致謝。Swing JList,只顯示15條記錄

回答

2

我認爲你應該使用這種方法setVisibleRowCount(int visibleRowCount)爲了設置Jlist中可以顯示的首選行數。

+0

我試過這個,但它似乎不起作用。 – notranked

+0

正如你所說的,你從DB獲取記錄,所以你可以從DB中選擇15個新的recodrs! – Yassering

+0

爲了做到這一點使用此查詢:SELECT TOP 15 ....; (這是MS SQLSERVER的語法)。 – Yassering

1

當然。製作自己的TableModel,或許可以從javax.swing.table.AbstractTableModel中

衍生只要確保你的模型永遠只公開15行(也許用LinkedList<>牽你的日誌條目)。

+0

嗯,但是例如,如果我的模型包含超過15行,它將不起作用? 我實際上是從數據庫中取得記錄,也許有一些聲明只從數據庫中選擇最後15條記錄? – notranked

+0

「TableModel」是一些任意數據的抽象視圖。假設你在一個List中有一百萬條日誌記錄。如果您的模型'getRowCount()'僅表示15(和關聯的'getValueAt()'方法僅返回最後15行數據),那麼您的JTable將只顯示15行!請注意,這並沒有太多說明如何檢索和存儲日誌記錄,因此對於數據庫中的日誌數據,「select with limit」方法也適用。 –

+0

謝謝,我已經讓它工作了,正如你之前提到的,設置限制爲15。 – notranked