0
我正在嘗試使用ImageIcon和addMouseListener從JFrame上的圖像製作一個buttom,該圖像將通過單擊它來替換當前圖像。從JLabel創建的圖像按鈕無法正常工作
static JPanel jp = new JPanel();
final JLabel jl = new JLabel();
final JFrame jf = new JFrame();
ImageIcon image = new ImageIcon("image1.jpg");
jl.setIcon(image);
jp.add(jl);
jf.add(jp);
jf.validate();
JLabel button = new JLabel(image);
button.addMouseListener(new MouseAdapter() {
public void mouseClicked(MouseEvent e) {
jl.setIcon(null);
ImageIcon image = new ImageIcon("image2.jpg");
jl.setIcon(image);
}
});
GUI與image1.jpg一起顯示,但按鈕根本不起作用,我甚至無法測試從image1到image2的替換是否工作。即使我嘗試點擊窗口上顯示的image1.jpg,GUI也不會執行任何操作。
編輯:經過調整的JLabel變得現在是最終決定。其他類似的問題,這種方法應該工作,但我無法弄清楚代碼有什麼問題。
你應該爲按鈕使用'ActionListener'。 –
我只是想讓圖像可點擊來命令一個動作。不太確定ActionListener是否可以與JLabel一起使用。 –
什麼類的類型是你的「按鈕」變量?請說明它是如何聲明和初始化的。你的標題表明它是一個JLabel,如果是這樣,變量名稱是非常具有誤導性的,因爲它表明它實際上是一個JButton或類似的東西。考慮澄清你的問題。 –