以下的代码是一个选图片的程序,编译能过但是,按选择图片的按扭后,没有和预想的那样选择要选的图片,请高手给解决以下,我先 谢谢了
package 图片选择;/**
 * <p>Title: </p>
 *
 * <p>Description: </p>
 *
 * <p>Copyright: Copyright (c) 2006</p>
 *
 * <p>Company: </p>
 *
 * @author not attributable
 * @version 1.0
 */
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class ShowPics implements ActionListener
{
  final static int NUM_IMAGES=6;
  final static int START_INDEX=0;
  ImageIcon[] images=new ImageIcon[NUM_IMAGES];
  JLabel pictureFrame;
  JComboBox pictures;
  public static void main(String[] args)
  {
    JFrame frame=new JFrame ("我的经典图片收藏之一");
    ShowPics app=new ShowPics();
    JPanel pane=app.createComponents();
    frame.getContentPane().add(pane);
    frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE );
    frame.setSize(430,430);
    frame.setVisible(true);
  }
  public JPanel createComponents()
  {
    JPanel mainPanel=new JPanel();
    JPanel selectPanel=new JPanel();
    JPanel picsPanel=new JPanel();
    mainPanel.setLayout(new BoxLayout(mainPanel,BoxLayout.PAGE_AXIS));
    mainPanel.setBorder(BorderFactory.createEmptyBorder(5,5,5,5));
    selectPanel.setBorder(BorderFactory.createCompoundBorder(BorderFactory.createTitledBorder("选择"),BorderFactory.createEmptyBorder(5,5,5,5)));
    picsPanel.setBorder(BorderFactory.createCompoundBorder(BorderFactory.createTitledBorder("经典图片"),BorderFactory.createEmptyBorder(5,5,5,5)));
    JLabel lblName=new JLabel("请选择");
    String[] names={"不死亡灵","人族联盟","暗夜精灵","青龙","米格","水晶蝙蝠"};
    pictures=new JComboBox(names);
    pictures.setSelectedIndex(START_INDEX);
    selectPanel.add(lblName);
    selectPanel.add(pictures);
    pictures.addActionListener(this);
    for(int i=0;i<NUM_IMAGES;i++)
    {
      images[i]=new ImageIcon(i+".jpg");
    }
    pictureFrame=new JLabel();
    pictureFrame.setBorder(BorderFactory.createCompoundBorder(BorderFactory.createLoweredBevelBorder(),BorderFactory.createEmptyBorder(5,5,5,5)));
    pictureFrame.setIcon(images[START_INDEX]);
    picsPanel.add(pictureFrame);
    mainPanel.add(selectPanel);
    mainPanel.add(picsPanel);
    return mainPanel;
  }
    public void actionPerformed(ActionEvent e)
    {
      if("comBoxChanged".equals(e.getActionCommand()))
      {
        pictureFrame.setIcon(images[pictures.getSelectedIndex()]);
      }
    }
}

解决方案 »

  1.   

    public void actionPerformed(ActionEvent e)
        {
          //if("comBoxChanged".equals(e.getActionCommand()))
          //{
          // System.out.println("comBoxChanged");
            pictureFrame.setIcon(images[pictures.getSelectedIndex()]);
         // }
        }
      

  2.   

    谢谢2楼的指点,能编译过去了.非常感谢,
    再追问下:
    if("comBoxChanged".equals(e.getActionCommand()))  //这个if判断为什么不能用呢?
    {
    pictureFrame.setIcon(images[pictures.getSelectedIndex()])
    }