【发布时间】:2012-08-18 13:20:26
【问题描述】:
如果已经显示图像,单击按钮如何将其更改为另一个图像?
假设我缓冲了两个图像。
bi = ImageIO.read(new File("1.jpg");
bi2 = ImageIO.read(new File("2.jpg"));
并显示我正在使用的 bi
public void paint(Graphics g){
super.paintComponent(g);
Dimension dim = Toolkit.getDefaultToolkit().getScreenSize();
int w = ((int) dim.getWidth() / 2) - (bi.getWidth() / 2);
int h = ((int) dim.getHeight() / 2) - (bi.getHeight() / 2);
g.drawImage(bi, w, h, null);
}
我正在尝试这样做。
JButton b = new JButton("Change Image");
b.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent ae){
bi = bi2;
paint(null);
}
});
这将 bi 设置为一个新的图像和调用 paint() 方法,但图像查看器本身现在根本不出现。
how to set JFrame background transparent but JPanel or JLabel Background opaque?继续
【问题讨论】:
-
为什么不直接使用
setImageIcon(imageIcon)按钮的方法? -
最简单的方法是将它们用作未装饰按钮上的备用图标,如this answer所示。
-
@HarryJoy 赌我 8 秒。 ;)
-
@AndrewThompson 万岁!!!!!! :P
-
如需尽快获得更好的帮助,请发帖SSCCE。请注意,
public void paint(Graphics g){ super.paintComponent(g);几乎肯定是错误的。当我看到 SSCCE 时会知道更多。
标签: java swing image-viewer