我有一个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