我有一個JComboBox,我想在JScrollPane中加載一個不同的內容,每次我從JComboBox中選擇一個不同的元素。內容由各種數量的JLabel和JTextFields組成。如何在從JComboBox中選擇元素後刷新JScrollPane?
我做了什麼:
JScrollPane scrollPane;
JComboBox combo;
JPanel back = new JPanel(new BorderLayout());
combo = new JComboBox({ "Bird", "Cat", "Dog", "Rabbit", "Pig" });
combo.addActionListener(new AnimalLoader());
scrollPane = showPanel((String) combo.getSelectedItem());
back.add(combo, BorderLayout.NORTH);
back.add(scrollPane, BorderLayout.SOUTH);
back.setVisible(true);
protected JScrollPane showPanel(String name)
{
JPanel contentPanel = new JPanel(new JLabel(name));
scrollPane = new JScrollPane(contentPanel);
return scrollPane;
}
private class AnimalLoader implements ActionListener
{
public void actionPerformed(ActionEvent e)
{
JComboBox cb = (JComboBox) e.getSource();
String selected = (String) cb.getSelectedItem();
scrollPane = showPanel(selected);
}
}
我沒做這個重載不同JScrollPane的時候我選擇另一個項目。 只有屬於JComboBox的第一個項目(默認的一個)的JScrollPane被加載。
任何想法,我做錯了,請嗎?
爲了更好地幫助越早,後期的SSCCE(http://pscode.org/sscce的.html)。 – 2011-03-13 12:37:50