Java Swing中Icon图标大小的设定,图片大小不可设置的解决办法
2013-07-16 10:25
941 查看
在JAVA Swing 里,给一个JLable设置一个背景图片很简单,直接用
JLable.setIcon(new ImageIcon(path));
就可以了,但存在个问题就是设置上的图片是图片的原有大小,如果
JLable的大小与图片大小不符的话可能就显示不全.ImageIcon没有重新设置图片大小,或者缩放的方法.
解决办法:
可以用Image中的getScaledInstance方法得到一个按照指定宽度和高度缩放以后的Image实例,然后再用setImage方法设置ImageIcon所显示的图像
封装了一个方法,代码如下:
public static ImageIcon getImageIcon(String path, int width, int height) {
if (width == 0 || height == 0) {
return new ImageIcon(obj.getClass().getResource(path));
}
ImageIcon icon = new ImageIcon(this.getClass().getResource(path));
icon.setImage(obj.getImage().getScaledInstance(width, height,
Image.SCALE_DEFAULT));
return icon;
}
由于封装时用的是静态方法,obj为当前类的一个实例,定义的一个全局变量.如果改为非静态的话可以用this关键字代替obj
JLable.setIcon(new ImageIcon(path));
就可以了,但存在个问题就是设置上的图片是图片的原有大小,如果
JLable的大小与图片大小不符的话可能就显示不全.ImageIcon没有重新设置图片大小,或者缩放的方法.
解决办法:
可以用Image中的getScaledInstance方法得到一个按照指定宽度和高度缩放以后的Image实例,然后再用setImage方法设置ImageIcon所显示的图像
封装了一个方法,代码如下:
public static ImageIcon getImageIcon(String path, int width, int height) {
if (width == 0 || height == 0) {
return new ImageIcon(obj.getClass().getResource(path));
}
ImageIcon icon = new ImageIcon(this.getClass().getResource(path));
icon.setImage(obj.getImage().getScaledInstance(width, height,
Image.SCALE_DEFAULT));
return icon;
}
由于封装时用的是静态方法,obj为当前类的一个实例,定义的一个全局变量.如果改为非静态的话可以用this关键字代替obj
相关文章推荐
- Java Swing设置图标Icon
- 设置文件选择对话框大小及纵向大小不可变--JAVA-SWING-JFileChooser-setMinimumSize
- 使用javaswing设定背景图片为窗体大小(原创)
- JAVA中如何设置图片(图标)自适应Jlable等组件的大小
- JAVA中如何设置图片(图标)自适应Jlable等组件的大小
- ios UIImage修改大小后图片模糊解决办法
- (IIS)网站本地放置,域名虚拟,权限设置,局域网访问网站图片无法显示之解决办法
- java图片转换格式并设定大小
- 用Bitmap加载图片资源时,报错java.lang.OutOfMemoryError: bitmap size exceeds VM budget的解决办法
- java.sql.SQLException: Value'0000-00-00'异常解决办法及mysql的url设置
- Discuz!图片用hide代码隐藏设置回复或积分高于多少可见在手机版BUG一枚,附带解决办法
- java图片转换格式并设定大小
- icon font字体图标在chrome浏览器被加粗和锯齿的解决办法
- Java Swing 之设置窗体背景图片
- [JAVA] 设置图标,设置字体,设置界面风格,JTable显示表头且设置不可编辑
- java tomcat jboss excel 2007 xlsx 下载 发现不可读取内容 解决办法
- Android应用程序当中GridView显示不同大小图片时Item挤出问题解决办法
- java在线聊天项目0.2版本 制作客户端窗体,使用swing(用户界面开发工具包)和awt(抽象窗口工具包) BorderLayout布局与GridLayout布局不同之处 JPanel设置大小
- C#的PictureBox显示图片与实际图片大小不符的解决办法
- 用Bitmap加载图片资源时,报错java.lang.OutOfMemoryError: bitmap size exceeds VM budget的解决办法