以下的代码是一个选图片的程序,编译能过但是,按选择图片的按扭后,没有和预想的那样选择要选的图片,请高手给解决以下,我先 谢谢了
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()]);
}
}
}
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()]);
}
}
}
{
//if("comBoxChanged".equals(e.getActionCommand()))
//{
// System.out.println("comBoxChanged");
pictureFrame.setIcon(images[pictures.getSelectedIndex()]);
// }
}
再追问下:
if("comBoxChanged".equals(e.getActionCommand())) //这个if判断为什么不能用呢?
{
pictureFrame.setIcon(images[pictures.getSelectedIndex()])
}