我正在編寫一個相當複雜的程序,因此我只會嘗試僅就問題出現的位置進行解釋。JScrollPane的問題 - 試圖在模型更改上更新它
在我看來,我創建一個JScrollPane顯示,一個學生註冊課程列表:
registeredPane = new JScrollPane(); registeredPane.setHorizontalScrollBarPolicy(JScrollPane.HORIZONTAL_SCROLLBAR_AS_NEEDED);
registeredPane.setVerticalScrollBarPolicy(JScrollPane.VERTICAL_SCROLLBAR_ALWAYS);
c.gridx = 2;
c.gridwidth = 1;
c.gridheight = 2;
c.weightx = 1;
c.weighty = 1;
c.fill = GridBagConstraints.BOTH;
layout.setConstraints(registeredPane, c);
然後我,在我的控制器,改變模型,以反映課程當前活躍的學生通過調用在我的模型這個函數註冊:
public void updateCurrentStudentCourses() {
ArrayList<String> courseNames = new ArrayList<String>();
for (Course c: currentStudent.getRegCourses()) {
courseNames.add("" + c.getDepartment().getId() + c.getCode());
}
System.out.println(courseNames);
}
然後我,又在我的控制器,更新視圖,以反映添加 的ArrayList到JScrollPane的這些變化:
public void updateView() {
view.getNameField().setText(model.getCurrentStudent().getName());
view.getRegisteredPane().removeAll();
view.getRegisteredPane().getViewport().add(model.getCurrentStudentCourses());
view.getRegisteredPane().repaint();
}
滾動條消失,但就是這樣。列表項(我知道在ArrayList中)不顯示。我究竟做錯了什麼?
要將'Swing'的哪個組件添加到'ArrayLists'的那些值? – 2013-03-22 18:41:46
對於ArrayList,我添加了打印調用顯示爲[string1,string2等]的字符串(課程名稱)。這就是我知道ArrayList是好的。 – clappboard 2013-03-22 18:45:02
'view.getNameField()'返回一個'JTextArea'對象。對?? – 2013-03-22 18:46:29