日期:2014-05-20  浏览次数:20723 次

java设置背景图片,大小没有像预期的那样,其中有背景切换功能,通过背景切换按钮所得背景符合预期。
背景设置分布在两个地方,效果不一样:
  public Cont()
  { 。。。
  background = new ImageIcon("g.jpg");
l1 = new JLabel(background);
p2.add(l1, new Integer(Integer.MIN_VALUE));
background.setImage(background.getImage().getScaledInstance

(x,y,Image.SCALE_DEFAULT));  
Contframe.validate();//刷新
  。。。}

public void actionPerformed(ActionEvent f) //监控按钮操作
{ if (f.getActionCommand()=="森林界面") 
  { p2.removeAll(); 
background = new ImageIcon("s.jpg");
l1 = new JLabel(background);
p2.add(l1, new Integer(Integer.MIN_VALUE));
background.setImage(background.getImage().getScaledInstance

(x,y,Image.SCALE_DEFAULT));
Contframe.validate();//刷新
}
几乎相同的代码,在不同的地方的功能却不一样。好像在Cont()里就没法让图片适应p2的大小。怎么办呢?

------解决方案--------------------
关键就在于:你这个x,y是什么?是通过什么方法获得的?

区别就是,在造函数中的时候:
控件还没展现出来,size还不确定,图片自然无法缩放到你期望的大小

而你在按钮中触发的时候:
所有的控件已经初始化完毕,已经展现了出来,size已经确定,你自然可以将图片缩放到控件的大小
------解决方案--------------------
第一:在造函数中的时候:
控件还没展现出来,size还不确定,图片自然无法缩放到你期望的大小
第二:这个x,y是什么?是通过什么方法获得?