2016-03-30 78 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

你應該確保該按鈕被添加到一個可見的容器,並且顯然它不是null(所以初始化它)。 – Berger

回答

1

這要顯示的圖像:

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

會引發NullPointerException。正確初始化變量imageLabel。例如:

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

這是無效的,你不能設置imageLabel爲空,然後將其設置圖標。如果Image標籤是「Item Image」下方的方框,那麼它應該在類級別初始化,並且您只需要使用setIcon更改圖標,然後使用revalidate()方法重新驗證按鈕。

+0

謝謝你們,它正在工作(* _ *) – LBC