[英]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
接口,例如JTable
或JList
就像他們說的那樣,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.