在java部分需要用到圖形界面編程的項目中,經常會使用圖片設置對按鈕進行美化,但是使用時會出現一個很麻煩的問題,那就是按鈕的大小默認按照圖片的大小來顯示,這大大降低了界面的美觀程度;
按照方法:
JButton jb1 = new JButton(); jb1.setBounds(0, 0, 25, 20); ImageIcon ii = new ImageIcon("images/xxx.png"); jb1.setIcon(ii);
但是,在修改完按鈕的大小后,按鈕還是沒有改變,這是因為我是對圖片沒有進行縮放
所以,修改為以下:
JButton jb1 = new JButton(); jb1.setBounds(0, 0, 25, 20); ImageIcon ii = new ImageIcon("images/xxx.png"); //根據按鈕大小改變圖片大小 Image temp = ii.getImage().getScaledInstance(jb1.getWidth(), jb1.getHeight(), ii.getImage().SCALE_DEFAULT); ii = new ImageIcon(temp); jb1.setIcon(ii);
jb1.setToolTipText("image");
修改為以上方法后,確實可以了,但是我上面有6個按鈕需要修該,難不成要一個一個該?那要是有100個我改咋辦?
這是我們就需要對以上的模塊進行封裝;(我的類是:JF_Notpad)
public static JButton changeIconSize(JButton button,String url,int width,int height,String tip){ button.setBounds(0,0,width,height); ImageIcon buttonImg=new ImageIcon(url); //改變圖片的大小 Image temp=buttonImg.getImage().getScaledInstance(button.getWidth(), button.getHeight(), buttonImg.getImage().SCALE_DEFAULT); button=new JButton(new ImageIcon(temp)); button.setToolTipText(tip); //提示 return button; }
因為這里我的六個按鈕是要同樣大小的,我就將其大小設為靜態常量,通過此來改變按鈕的大小
調用如下:
create=new JButton(); create=JF_Notpad.changeIconSize(create, "img/notpad/news.png", BUTTONWIDTH, BUTTONWIDTH, "New");
最終效果:
當然大家可以將之前的模塊放在你自己工具類中,這樣方便以后調用。