0
我正在嘗試創建面板PluginListPanel(擴展JPanel),它將顯示插件面板列表,它將尊重插件面板的首選高度,但會強制寬度。我有一個解決方案,但它很慢,並有一個奇怪的錯誤。在截圖中,有兩個這樣的面板,一個向左,一個向右:動態創建jpanels swing列表/ java
我不知道不同佈局的管理系統非常好,但我知道,在頂部場BorderLayout做我想要的。所以,我想出了這個「遞歸」的解決方案:
public PluginListPanel(List<PanelContainer> items) {
JPanel body = this;
for (PanelContainer item : items) {
body.setLayout(new BorderLayout(0, 0));
JPanel panel = new PluginOnePanel(item);
body.add(panel, BorderLayout.NORTH);
JPanel newBody = new JPanel();
body.add(newBody, BorderLayout.CENTER);
body = newBody;
}
}
我遇到的問題是,當我滾動,系統有點反應遲鈍,和SamplePluginPanels的顏色是不同的(見下圖),即使SamplePluginPanels的數量低至8.
問題是,我該如何讓這更優雅,而不是減慢程序速度,避免顏色錯誤?
任何見解都非常感謝。
這個解決方案比我的更好:-)不幸的是,它遇到了同樣的問題,因爲當我滾動時緩慢和顏色變化:-( – tor 2013-04-07 22:52:39
@tor這可能是'PanelContainer'或'PluginOnePanel'中的缺陷 – Mordechai 2013-04-07 22:55:43
兩者都是JPanel的虛擬擴展 - PluginOnePanel只是簡單地將一個PanelContainer中包含的面板顯示在一個框架中,它現在只是一個帶有JLabel和設置背景顏色的JPanel。除此之外什麼也沒有... – tor 2013-04-07 23:26:05