Я хочу иметь две панели в разделенной панели. На первой панели (ListPanel10_14) - JList, где я выбираю имя животного, которое я хочу отобразить на второй панели.
Во второй панели (ImagePanel10_14) ImageIcon со всеми животными. Моя проблема в том, что я не могу связать JList Listener на моей первой панели для обновления / перерисовки изображений на второй панели. Я ожидаю, что я должен вызвать paintMethod, и я пробовал много кодов, но все они генерировали ошибки. Пожалуйста, помогите мне понять, как связать слушателя в одном классе, чтобы воздействовать на переменную второго класса и перекомпилировать второй класс
Спасибо
public class Jlist10_14
{
public static void main(String[] args) {
JFrame frame = new JFrame ("Deux panels connectés entre eux");
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
ListPanel10_14 listP = new ListPanel10_14();
ImagePanel10_14 imageP = new ImagePanel10_14();
JSplitPane sp = new JSplitPane (JSplitPane.HORIZONTAL_SPLIT, true, listP,imageP);
frame.setContentPane(sp);
frame.pack();
frame.setVisible(true);
}
}
public class ListPanel10_14 extends JPanel
{
String[] animaux = {"tigre", "girafe","singe","perruche"};
JList listeAnimaux = new JList (animaux);
int indexSelected ;
public ListPanel10_14()
{
listeAnimaux.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
ListListener listener = new ListListener();
listeAnimaux.addListSelectionListener(listener);
add(listeAnimaux);
}
// Inner Class
private class ListListener implements ListSelectionListener
{
public void valueChanged(ListSelectionEvent event)
{
indexSelected = ListPanel10_14.this.listeAnimaux.getSelectedIndex();
System.out.println(indexSelected);
}
}
}
public class ImagePanel10_14 extends JPanel{
int index ;
ImageIcon tigreImage = new ImageIcon ("C:/Users/david/Desktop/java png/tigre.gif");
ImageIcon girafeImage = new ImageIcon ("C:/Users/david/Desktop/java png/girage.gif");
ImageIcon singeImage = new ImageIcon ("C:/Users/david/Desktop/java png/singe.gif");
ImageIcon perrucheImage = new ImageIcon ("C:/Users/david/Desktop/java png/perruche.gif");
ImageIcon[] images = {tigreImage, girafeImage, singeImage, perrucheImage};
JLabel imageLabel = new JLabel();
ListPanel10_14 inListPanel = new ListPanel10_14();
public ImagePanel10_14()
{
setIndex();
imageLabel.setIcon(images[index]);
add(imageLabel);
}
public void setIndex() {
index = inListPanel.indexSelected;
}
}