JComobox is not showing in the JDialog

Posted by Pujan Srivastava on Stack Overflow See other posts from Stack Overflow or by Pujan Srivastava
Published on 2010-06-05T03:45:50Z Indexed on 2010/06/05 18:02 UTC
Read the original article Hit count: 218

Filed under:
|

I have 2 classes. when I put bold 3 lines in the method addCourses() the dialog does not show combobox in the Panel but when I remove from addCourses and put those bold lines in the constructor, JComboBox are shown in the Panel.

But data will not show because data items updates to ComboBox will happen after Constructor is created.

How can I solve this problem.


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();
}

and second class is

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);
    }
}

© Stack Overflow or respective owner

Related posts about java

Related posts about swing