У меня есть JComboBox, и я хочу загружать в JScrollPane разное содержимое каждый раз, когда я выбираю другой элемент из JComboBox.Содержимое состоит из различного числа JLabels и JTextFields.
Что я сделал:
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, когда я выбираю другой элемент.Загружается только JScrollPane, который принадлежит первому элементу (элемент по умолчанию) JComboBox.
Любые идеи о том, что я сделал неправильно, пожалуйста?