只需单击另一个按钮即可在2个按钮上切换图像

时间:2014-09-18 19:34:56

标签: java swing jbutton swap

我有2个按钮,每个按钮上有一个图像,我希望只需点击另一个(第三个)按钮,就会交换前两个按钮的图像。我试过这个,但是我遇到了一些错误。 Plz的帮助。我的代码是:

import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
class SwapImage implements ActionListener
{
JButton b1;
JButton b2;
JButton b3;
ImageIcon bgi1;
ImageIcon bgi2;
ImageIcon bgi3=new ImageIcon();

SwapImage()
{
JFrame f=new JFrame("Swap Image");

bgi1=new ImageIcon(getClass().getResource("a.png"));
bgi2=new ImageIcon(getClass().getResource("b.png"));

b1=new JButton(bgi1);
b1.setBounds(80,80,100,100);
//b1.addActionListener(this);

b2=new JButton(bgi2);
b2.setBounds(200,80,100,100);
//b2.addActionListener(this);

b3=new JButton("SWAP");
b3.setBounds(170,230,100,100);
b3.addActionListener(this);

f.add(b1);
f.add(b2);
f.add(b3);
f.setSize(400,400);
f.setLayout(null);
f.setVisible(true);

}

public void actionPerformed(ActionEvent e)
{

bgi3=bgi1;
bgi1=bgi2;
bgi2=bgi3;
b1=new JButton(bgi1);
b2=new JButton(bgi2);

}


public static void main(String s[])
{
new SwapImage();
}

}

1 个答案:

答案 0 :(得分:2)

在你的actionPerformed中,请勿致电:

b1=new JButton(bgi1);
b2=new JButton(bgi2);

相反,只需设置图标:

b1.setIcon(bgi1);
b2.setIcon(bgi2);
相关问题