2016-03-30 2 views
1

Я пытаюсь отобразить ImageIcon Я хочу, чтобы изображение, которое будет отображаться после выбора элемента из OrderList JList изображениеДисплей ImageIcon

DefaultListModel<MenuItem> orderList = new DefaultListModel<MenuItem>(); 
    JList<MenuItem> listOrder = new JList<MenuItem> (orderList);     
    listOrder.addMouseListener(new MouseAdapter() { 
     @Override 
     public void mouseClicked(MouseEvent arg0) { 
      MenuItem selectedItem = listOrder.getSelectedValue(); 
      ImageIcon icon = selectedItem.getItemImage(); 
      AbstractButton imageLabel = null; 
      imageLabel.setIcon(icon); 

     } 
    }); 
    listOrder.setFont(new Font("Arial", Font.PLAIN, 14)); 
    listOrder.setBackground(Color.GRAY); 
    listOrder.setBounds(506, 67, 317, 375); 
    contentPane.add(listOrder); 

MenuGUI

+0

Вы должны убедиться, что кнопка добавлена ​​в видимый контейнер и, очевидно, что она не является нулевой (так инициализируйте ее). – Berger

ответ

1

Это:

AbstractButton imageLabel = null; 
imageLabel.setIcon(icon); 

Собирается поднять исключение NullPointerException. Инициализируйте переменную imageLabel правильно. Например:

AbstractButton imageLabel = new JButton(icon); 
1
AbstractButton imageLabel = null; 
imageLabel.setIcon(icon); 

Это не действует, Вы не можете установить imageLabel утратившим затем установить значок для него. Если метка изображения является квадратным прямоугольником ниже «Item Image», то она должна быть инициализирована на уровне класса, и вам нужно просто изменить значок с помощью setIcon и повторно проверить, а затем кнопку, используя метод revalidate().

+0

Спасибо, ребята, он работает (* _ *) – LBC