使用按钮摆动更改图像

时间:2012-11-27 22:15:33

标签: java image swing button

我有这样定义的2个类:

public class Cartes extends JPanel
{
  private BufferedImage image;
  protected int tabC[] = new int[9];
  public int randomC ;

  public Cartes ()
  {

    ..........

    BufferedImage myPicture = null;

    try {
      myPicture = ImageIO.read(new File("images/"+randomC+".png"));
    } 
    catch (IOException e)
    {
      // TODO Auto-generated catch block
      e.printStackTrace();
    }

    JLabel picLabel = new JLabel(new ImageIcon( myPicture ));
    add( picLabel );
  }

  public void paintComponent(Graphics g)
  {
    super.paintComponent(g);
    g.drawImage(image, 0, 0, null); //
  }
}

注意:randomC是构造函数中生成的整数,允许我随机选择图像。

public class VueGeo extends JFrame
{
  public Cartes pan = new Cartes();
  private JButton bouton = new JButton("Change");

  public VueGeo()
  {

    ...

    container.add(pan, BorderLayout.CENTER);

    bouton.addActionListener(new BoutonListener ());

    ...

    this.setContentPane(container);

    this.setVisible(true);

  }

  class BoutonListener implements ActionListener
  {
    public void actionPerformed(ActionEvent arg0) {
      ????????
    }
  }
} 

问题是我不知道放在actionPerformed中的内容,以便每当我点击更改时允许我更改图像。有人有想法吗?

1 个答案:

答案 0 :(得分:3)

在Cartes中制作一个setter方法:

public void setImage(BufferedImage i)
{ image = i; }

然后,在actionPerformed中,

cartes.setImage( (whatever image you would like) );
cartes.repaint();