java中怎样实现刷新Jframe,具体内容如下:
我想要在一个jframe中显示一个图片(图片1)和一个按钮,这个图片是在jlable中,我想要当点击按钮是将图片换成另外一张(图片2)并显示。请问怎么实现啊?麻烦给下简短...
我想要在一个jframe中显示一个图片(图片1)和一个按钮,这个图片是在jlable中,我想要当点击按钮是将图片换成另外一张(图片2)并显示。请问怎么实现啊?麻烦给下简短代码,,谢谢了。
展开
3个回答
展开全部
可以建立两个jlable分别放上不同的图片,将jlable放在jpanel上面,点击按钮后删除原来的jlabel添加新的jlabel
JPanel panel=new JPanel();
JLabel label1=new JLabel();
JLabel label2=new JLabel();
如果已经将label1添加在panel上,单击后可用以下代码:
panel.remove(label1);
panel.repaint();
panel.add(label2);
JPanel panel=new JPanel();
JLabel label1=new JLabel();
JLabel label2=new JLabel();
如果已经将label1添加在panel上,单击后可用以下代码:
panel.remove(label1);
panel.repaint();
panel.add(label2);
追问
你这个还是有点不对,我试过了,点击之后图片消失,就再也没显示第二张了,麻烦完善下,,我就是这点细节没搞懂。
追答
在后面再加上一句:panel.validate();
这是我写的程序:
public class ReloadImg implements ActionListener{
JFrame frame=new JFrame("刷新图像");
JPanel pimage=new JPanel();
ImageIcon gx=new ImageIcon("scene.jpg");
ImageIcon wt=new ImageIcon("windows.jpg");
JLabel imgOne=new JLabel(gx);
JLabel imgTwo=new JLabel(wt);
JButton fresh=new JButton("刷新");
Boolean b=false;
ReloadImg(){
BorderLayout layOut=new BorderLayout();
pimage.add(imgOne);
frame.add(pimage,layOut.CENTER);
frame.add(fresh,layOut.SOUTH);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setSize(300,300);
frame.setVisible(true);
fresh.addActionListener(this);
}
public void actionPerformed(ActionEvent e){
if(e.getActionCommand().equals("刷新")){
if(b==false){
pimage.remove(imgOne);
pimage.repaint();
pimage.add(imgTwo);
pimage.validate();
b=true;
}else{
pimage.remove(imgTwo);
pimage.repaint();
pimage.add(imgOne);
pimage.validate();
b=false;
}
}
}
public static void main(String[] args){
new ReloadImg();
}
}
随便找两个jpg格式的图片命名为windows.jpg和scene.jpg,跟这个java文件放在同一个目录下,就可以了。
展开全部
可以改变图片的背景图片啊!
给按钮一个单击事件(ActionPerformed),在事件里面用 按钮名称.setIcon(new ImageIcon("图片路径"));
给按钮一个单击事件(ActionPerformed),在事件里面用 按钮名称.setIcon(new ImageIcon("图片路径"));
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
当点击按钮时候调jlable.seticon(图片2)
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询