我用如下代码添加了一张图片,
imageofperson=new ImageIcon(imageurlofperson);
image = imageofperson.getImage();
smallimage = image.getScaledInstance(300,300,Image.SCALE_FAST);
smallicon = new ImageIcon(smallimage);
imageofpersonlabel=new JLabel(smallicon);
this.getLayeredPane().add(imageofpersonlabel,
new Integer(Integer.MIN_VALUE)); // 设置JLabel在最底层
imageofpersonlabel.setBounds(0, 0, 300,300);
又设置了一个选择图片的按钮,按钮的事件监听器中还是上面的代码,只不过imageurlofperson变量已经换成所选择的图片所在的地址了,我本来想用新的选择的图片替换旧的那张图片,可是显示的一直是旧的图片,请问怎么办呢?请指教。多谢。
------解决思路----------------------
写了个例子,希望能帮到你。
import javax.swing.*;
import javax.swing.filechooser.*;
import java.awt.*;
import java.awt.event.*;
import java.io.File;
public class CsdnTest extends JFrame {
private static final long serialVersionUID = -4540916546211725054L;
private JLabel background = new JLabel();
private JTextField tf_path = new JTextField();
private JPanel pl_main = new JPanel();
private JButton btn_choose = new JButton();
public CsdnTest() {
initComponents();
}
private void initComponents() {
Container c = getContentPane();
btn_choose.setBounds(100, 100, 120, 20);
btn_choose.setText("选择图片");
btn_choose.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent evt) {
btnActionPerformed(evt);
}
});
tf_path.setBounds(100, 50, 200, 30);
pl_main.setOpaque(false);
c.add(tf_path);
c.add(btn_choose);
c.add(pl_main);
c.add(background);
setSize(540, 450);
setVisible(true);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
public void btnActionPerformed(ActionEvent evt) {
//用JFileChooser选择背景图片。
JFileChooser jfc = new JFileChooser();
jfc.setFileSelectionMode(JFileChooser.FILES_AND_DIRECTORIES);
FileSystemView fsv = FileSystemView.getFileSystemView();
FileFilter ff = new FileNameExtensionFilter("图像文件(JPG/GIF)", "JPG",
"JPEG", "GIF");
jfc.setCurrentDirectory(fsv.getHomeDirectory());
jfc.setFileFilter(ff);
int state = jfc.showOpenDialog(null);
//用JLabel的setIcon()方法设置背景图片。
if (state == JFileChooser.APPROVE_OPTION) {
File selectedFile = jfc.getSelectedFile();
tf_path.setText(selectedFile.getAbsolutePath());
ImageIcon img = new ImageIcon(selectedFile.getAbsolutePath());
img.setImage(img.getImage().getScaledInstance(540, 450,
Image.SCALE_DEFAULT));
background.setIcon(img);
}
}
public static void main(String[] args) {
new CsdnTest();
}
}
------解决思路----------------------
图片加载的URL请求地址后加一个时间戳即可。