今天遇到一个掉了一笔的swing类。可以完美的解决JFrame下设置背景的问题。任意size。太掉了。特记于此

import java.awt.*;
import java.awt.image.BufferedImage;
import javax.swing.Icon;
import javax.swing.ImageIcon;
import javax.swing.JFrame;
import javax.swing.JLabel; public class ScaleIcon implements Icon { private BufferedImage i = null;
private Icon icon = null; public ScaleIcon(Icon icon) {
this.icon = icon;
} @Override
public int getIconHeight() {
return icon.getIconHeight();
} @Override
public int getIconWidth() {
return icon.getIconWidth();
} public void paintIcon(Component c, Graphics g, int x, int y) {
float wid = c.getWidth();
float hei = c.getHeight();
int iconWid = icon.getIconWidth();
int iconHei = icon.getIconHeight(); Graphics2D g2d = (Graphics2D) g;
g2d.setRenderingHint(RenderingHints.KEY_INTERPOLATION, RenderingHints.VALUE_INTERPOLATION_BILINEAR);
g2d.scale(wid / iconWid, hei / iconHei);
icon.paintIcon(c, g2d, 0, 0);
} public static void main(String[] args) {
ScaleIcon icon = new ScaleIcon(new ImageIcon(ClassLoader.getSystemResource("img/main.jpg")));
JLabel label = new JLabel(icon);
JFrame frame = new JFrame();
frame.getContentPane().add(label, BorderLayout.CENTER);
// frame.getContentPane().add(new JButton("click"),BorderLayout.NORTH);
frame.setSize(800, 600);
frame.setLocationRelativeTo(null);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setVisible(true);
}
}

最新文章

  1. web项目中,视图层中关于相对路径和绝对路径
  2. Java多线程与并发库高级应用-Callable与Future的应用
  3. MySQL缺失mysql_config文件
  4. AJAX中UPDATEPANEL配合TIMER控件实现局部无刷新
  5. Java Web编程的主要组件技术——MVC设计模式
  6. 开源 android
  7. 游标的使用实例(Sqlserver版本)
  8. C++ Builder平台使用Indy9开发自动FTP程序01
  9. Android广播——短信拦截
  10. ZooKeeper场景实践:(2)集中式配置管理
  11. C语言学习第九章
  12. Linux学习之CentOS(八)----详解文件的搜寻、查找(转)
  13. ARP欺骗配置及演示过程
  14. bean shell 中parameter传递参数的方法
  15. TCP协议和UDP协议下的socket
  16. openstack系列文章(1)devstack安装测试Queens
  17. 剑指Offer_编程题_2
  18. 【Java】 枚举类
  19. Linux和windows 查看程序、进程的依赖库的方法
  20. workerman-todpole 执行流程(2)

热门文章

  1. HTML 5中的文件处理之FileAPI(转载)
  2. eclipse优化(部分)
  3. format——MATLAB
  4. const关键字在C和C++区别
  5. C++ 实现不能被继承的类
  6. 配置普通用户可以运行saltstack的模块
  7. C#参数化SQL查询
  8. MySQL监控工具-orzdba
  9. IOS 控件的生命周期
  10. yii2.0 控制器加载不同的user组件