簡體   English   中英

如何為Jpanel設置模型?

[英]How to set the model for a Jpanel?

我想將一個類設置為Jpanel的模型,我在Uni的入門編程類中做到了這一點,但這是一個非常微不足道的實現。 我確定有一個很好的設置方法,但是我不知道/忘記了。

我以前使用的方法是將模型類作為參數傳遞給視圖類,然后使用該模型確定實例的類型,然后根據此數據將特定的圖標加載到gui。 它的效率很低,因為它總是必須檢查特定位置的對象並重新加載所有內容。

我覺得這應該很簡單,但找不到正確的答案。 任何幫助,將不勝感激。

我想將一個類設置為JPanel的模型。

太棒了。 這正是每個GUI程序員應該做的。

我以前使用的方法是將模型類作為參數傳遞給視圖類,然后使用模型確定實例的類型,然后根據此數據將特定的圖標加載到GUI。

你有正確的主意。 需要將模型實例傳遞給GUI組件,以便它們可以訪問模型的一部分。

在您的特定情況下,模型應包含獲取每個圖標的方法,並且GUI組件將調用適合該組件的get圖標模型方法。

通常,如果JPanel具有文本和按鈕組件,則模型應包含這些文本和按鈕組件的內容。 如果您的JPanel具有一個具有自己的數據模型的組件(例如JTree),則可以將DefaultTreeModel保留在模型類中。

如果需要,您可以在GUI中為每個JPanel創建一個模型類。 通常,您構建GUI模型是合乎邏輯的。

這是我的其他答案之一的真實示例: 螺旋儀GUI

實際上,在大多數情況下, JPanel用作“容器”,並且它沒有自己的Model接口,例如JTableJList

就像他們說的那樣,JPanel沒有模型。

但是,這里有一些種子代碼,您可以用來嘗試和偽造它。

public abstract class GPanelModel {
    abstract public void setWhatEver();
    abstract public void getWhatEver();
    abstract public void doWhatEver();
}

public class GPanel<T extends GPanelModel> extends JPanel {
    final T t;
    public GPanel(final T model) {
        t = model;
    }
    public T getModel() {
        return t;
    }
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM