显示ImageIcon

时间:2016-03-30 12:08:05

标签: java swing

我正在尝试显示imageIcon 我想要在orderList JList中选择一个项目后显示图像 图像

    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

2 个答案:

答案 0 :(得分:1)

此:

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

是否会引发NullPointerException。正确初始化变量imageLabel。例如:

AbstractButton imageLabel = new JButton(icon);

答案 1 :(得分:1)

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

这是无效的,您不能将imageLabel设置为null,然后为其设置图标。如果图像标签是“项目图像”下面的方框,那么它应该在类级别初始化,您需要使用setIcon更改图标,然后使用revalidate()方法重新验证然后按钮。