2013-05-29 119 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