在java部分需要用到图形界面编程的项目中,经常会使用图片设置对按钮进行美化,但是使用时会出现一个很麻烦的问题,那就是按钮的大小默认按照图片的大小来显示,这大大降低了界面的美观程度;
按照方法:
JButton jb1 = newJButton();
jb1.setBounds(0, 0, 25, 20);
ImageIcon ii= new ImageIcon("images/xxx.png");
jb1.setIcon(ii);
但是,在修改完按钮的大小后,按钮还是没有改变,这是因为我是对图片没有进行缩放
所以,修改为以下:
JButton jb1 = newJButton();
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= newImageIcon(temp);
jb1.setIcon(ii);
jb1.setToolTipText("image");
修改为以上方法后,确实可以了,但是我上面有6个按钮需要修该,难不成要一个一个该?那要是有100个我改咋办?
这是我们就需要对以上的模块进行封装;(我的类是:JF_Notpad)
public static JButton changeIconSize(JButton button,String url,int width,intheight,String tip){
button.setBounds(0,0,width,height);
ImageIcon buttonImg=newImageIcon(url);//改变图片的大小
Image temp=buttonImg.getImage().getScaledInstance(button.getWidth(), button.getHeight(), buttonImg.getImage().SCALE_DEFAULT);
button=new JButton(newImageIcon(temp));
button.setToolTipText(tip);//提示
returnbutton;
}
因为这里我的六个按钮是要同样大小的,我就将其大小设为静态常量,通过此来改变按钮的大小
调用如下:
create=newJButton();
create=JF_Notpad.changeIconSize(create, "img/notpad/news.png", BUTTONWIDTH, BUTTONWIDTH, "New");
最终效果:
当然大家可以将之前的模块放在你自己工具类中,这样方便以后调用。