一千萬個為什麽

搜索

在運行時更改JList行顏色

我正在嘗試動態更改JList行。我需要改變第n行顏色,突出顯示它(n在編譯期間是未知的)。我看到很多自定義ListCellRenderer的例子,但都是“靜態的”。

換句話說,我有JList x行。在運行期間,我的“業務邏輯”檢測第n行很重要。所以我想讓它的背景變成綠色,等一秒鐘,然後再把它變成白色。還有一件事,不要改變行選擇。

最好的辦法是什麽?

最佳答案

很簡單,使用以下命令將自定義ListCellRenderer設置為JList:

list.setCellRenderer(myListCellrenderer);

現在在重寫的方法getListCellRendererComponent()內部執行如下操作:

public Component getListCellRendererComponent(.....) {
    Component c = super.getListCellRendererComponent();
    c.setBackGround(Color.blue)
    return c;
}

上面的例子假定你的自定義渲染器覆蓋了DefaultListCellRenderer

轉載註明原文: 在運行時更改JList行顏色