2014年6月2日 星期一

Java swing 如何改變圖片大小 & Java Panel中放背景圖

Java swing 如何改變圖片大小(放圖的方式為在JLabel中放入ImageIcon)
1.      先匯入圖片至ImageIcon
 (ex: ImageIcon img= new ImageIcon(getClass().getResource("deer.jpg"))
2.      拿出Image
(ex: Image imgp = img.getImage();
3.      重新設定大小
(ex: Image newimg = img.getScaledInstance(width,hight,java.awt.Image.SCALE_SMOOTH);
4.      再創新的ImageIcon
(ex:ImageIcon  picture=new ImageIcon(newimg);
5.      再把ImageIcon放到LabeladdJFrame
(Ex:ImageTemp.setIcon(picture);
Java JPanel中放背景圖
1.      繼承JPanel並複寫paintComponent (inner class)
class NewPanel extends JPanel
   {
   
     public void paintComponent(Graphics g)
     {
        int x=0,y=0;
        java.net.URL imgURL=getClass().getResource("picture/back.jpg");

        //test.jpg是测试图片,与Demo.java放在同一目录下
        ImageIcon icon=new ImageIcon(imgURL);
        g.drawImage(icon.getImage(),x,y,getSize().width,getSize().height,this);
        while(true)
        {
          g.drawImage(icon.getImage(),x,y,this);
          if(x>getSize().width && y>getSize().height)break;
          //这段代码是为了保证在窗口大于图片时,图片仍能覆盖整个窗口
          if(x>getSize().width)
          {
             x=0;
             y+=icon.getIconHeight();
          }
          else
           x+=icon.getIconWidth();
        }
     }
   }
2.建立JPanel~一樣的使用方式

JPanel center=new NewPanel()