2014-09-18 102 views
0

我有兩個按鈕,每個按鈕上都有一個圖像,我希望通過點擊另一個(第三個)按鈕來交換前兩個按鈕的圖像。我已經嘗試過,但我收到了一些錯誤。 Plz的幫助。我的代碼是:單擊另一個按鈕在2個按鈕上交換圖像

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(); 
} 

} 
+0

什麼是某種錯誤的? – Compass 2014-09-18 19:36:58

回答

2

在你的actionPerformed,不叫:

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

代替,只需設置圖標:

b1.setIcon(bgi1); 
b2.setIcon(bgi2); 
+0

+1爲簡單的解釋問題。 – camickr 2014-09-18 20:28:36

+0

非常感謝你...... :):).....我現在很開心...... :) – 2014-09-19 19:09:53

+0

@AkshatMalviya我很樂意提供幫助。如果這個解決方案解決了您的問題,您應該將其標記爲正確,讓其他志願者知道已經提供了已接受的答案,通過不打開/閱讀已經有答案的問題來節省人們的時間。 – splungebob 2014-09-19 19:25:00

相關問題