我有2個類。 當我在方法addCourses()中放入粗體3行時,對話框在面板 中不顯示組合框,但是當我從addCourses中刪除並在構造函數中放入粗線時,JComboBox顯示在Panel中。JComobox沒有顯示在JDialog中
但是數據不會顯示,因爲數據項更新到ComboBox將在創建構造函數後發生。
我該如何解決這個問題。
this.mainPanel.add(courseCombo,BorderLayout.NORTH);
this.mainPanel.add(sessionCombo,BorderLayout.CENTER);
this.mainPanel.add(courseButton,BorderLayout.SOUTH);
public class Updator {
CourseListFrame clf = new CourseListFrame();
for(...){
clf.addContentsToBox(displayName, className);
}
clf.addCourses();
}
和第二類是
public class CourseListFrame extends JDialog implements ActionListener {
public JPanel mainPanel = new JPanel(new BorderLayout(2, 2));
public JButton courseButton = new JButton(("Submit"));
public JComboBox courseCombo;
public JComboBox sessionCombo;
public Multimap<String, String> map; // = HashMultimap.create();
public static CourseListFrame courseListDialog;
public CourseListFrame() {
super(this.getMainFrame());
this.getContentPane().add(mainPanel);
map = HashMultimap.create();
courseCombo = new JComboBox();
courseCombo.addItem("Select Courses");
courseCombo.addActionListener(this);
sessionCombo = new JComboBox();
}
public void addContentsToBox(String course, String session) {
map.put(course, session);
courseCombo.addItem(course);
}
public void actionPerformed(ActionEvent e) {
JComboBox cb = (JComboBox) e.getSource();
String str = (String) cb.getSelectedItem();
setSessionCombo(str);
}
public void setSessionCombo(String course) {
if (map.containsKey(course)) {
sessionCombo.removeAllItems();
Iterator it = map.get(course).iterator();
while (it.hasNext()) {
sessionCombo.addItem(it.next());
}
}
}
public void addCourses() {
this.mainPanel.add(courseCombo, BorderLayout.NORTH);
this.mainPanel.add(sessionCombo, BorderLayout.CENTER);
this.mainPanel.add(courseButton, BorderLayout.SOUTH);
}
public static void showCourseListDialog() {
if (courseListDialog == null) {
courseListDialog = new CourseListFrame();
}
courseListDialog.pack();
courseListDialog.setVisible(true);
courseListDialog.setSize(260, 180);
}
}
使用'this'在調用'超()'不應該編譯。 – akf 2010-06-05 04:00:16
退出交叉發佈:http://forums.sun.com/thread.jspa?threadID=5441271&tstart=0。花更多時間詢問支持代碼的正確問題,減少交叉發佈的時間。你還沒有製作出正確的SSCCE,因此你仍然沒有答案。 – camickr 2010-06-05 15:16:10