`

java swing 背景图片的按比例缩放

    博客分类:
  • java
 
阅读更多

import java.awt.*;
import java.awt.image.BufferedImage;
import javax.swing.Icon;
import javax.swing.ImageIcon;
import javax.swing.JFrame;
import javax.swing.JLabel;

/**
 *
 * @author weijian.zhongwj
 */
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);
    }
}

 


 

 

 

  • 大小: 666.5 KB
0
0
分享到:
评论

相关推荐

    java 图形显示,移动,缩放

    如果要保持原图的比例,可以使用`AffineTransform`对象。 ```java g2.scale(scaleFactorX, scaleFactorY); // 缩放图形 g2.drawImage(image, 0, 0, null); // 重新绘制缩放后的图像 ``` 4. **使用键盘和鼠标...

    java用图片作为窗口的背景

    在Java编程语言中,将图片设置为窗口的背景是一项常见的任务,特别是在开发图形用户界面(GUI)应用时。本文将详细讲解如何实现这一功能,并提供一个具体的实例代码——ImageTest.java,以及它所使用的背景图片1.JPG...

    缩放图片实例

    例如,在Python中,可以使用PIL库的`resize()`函数按比例缩放图片: ```python from PIL import Image # 打开图片 img = Image.open('input.jpg') # 定义新的尺寸,以保持宽高比 new_size = (width * scale, ...

    天天酷跑图片全部资源.rar

    4. 响应式设计:考虑不同分辨率的屏幕,图片可能会按比例缩放,因此在布局设计时需预留一定的适应性。 5. 图片资源的更新与替换:如果需要更新游戏资源,如增加新的角色或环境,开发者应设计好资源管理模块,方便...

    java设置背景图片源代码

    - 使用`getWidth()`和`getHeight()`确保图片按窗口大小拉伸,如果需要保持原始比例,可能需要进行适当的缩放处理。 - `ImageIO.read`可能会抛出`IOException`,因此需要捕获并处理。 - 为了提高性能,可以考虑...

    java自定义图片按钮

    可以使用 `Image.getScaledInstance(width, height, Image.SCALE_SMOOTH)` 来缩放图片,保持其原始比例,并保持平滑效果。 5. **按钮状态和图片**: - 按钮有不同状态,如默认、按下、鼠标悬停等。可以为每个状态...

    数字图像处理(java编程与试验;java语言实现)

    - **图像缩放**:使用`AffineTransformOp`类可以进行图像的等比例或非等比例缩放。 - **图像旋转**:同样通过`AffineTransformOp`,可以实现图像的旋转操作。 - **滤波操作**:包括均值滤波、高斯滤波、中值滤波...

    cismap-commons:Java Swing组件可构建基于标准的映射应用程序

    “cismap-commons:Java Swing组件可构建基于标准的映射应用程序”这个标题揭示了cismap-commons是一个专门用于构建地图应用程序的Java库,它利用了Swing作为用户界面框架。这意味着它提供了一套组件和工具,使得...

    java统计图的生成-jfreechart-1.0.1.zip

    Java统计图生成库JFreeChart是一个强大的开源工具,专为Java开发者设计,用于创建各种复杂的图表,如柱状图、饼图和折线图。它提供了丰富的功能和灵活性,使得在应用程序中集成可视化数据变得非常容易,而无需深入...

    java图像处理

    - Java提供了多种库来处理图像,如Java AWT(Abstract Window Toolkit)和Swing中的`java.awt.image`包,以及更强大的开源库如Apache Commons Imaging(原名Sanselan)、ImageJ和OpenCV的Java接口。 2. **图像分割...

    放大镜java写的参考下

    放大可以通过调整绘图比例实现,即将鼠标位置附近的图像按比例放大并在画布上绘制。 4. **实时更新**:当鼠标移动时,更新放大镜视图的绘图区域。这需要在`mouseMoved(MouseEvent e)`方法中计算放大区域的坐标,并...

    java中的报表(jfreeChart原创)

    JFreeChart 是一个流行的开源 Java 图表库,它提供了丰富的图表类型,如饼图、柱状图、线图、散点图等,使得开发者可以轻松地在 Java 应用程序中创建高质量的图形展示。本文将深入探讨 JFreeChart 的使用和核心概念...

    (java )rpg教程

    - 加载背景图片资源。 ##### 2. 地图构建原理 - **二维数组表示地图**: - 使用二维整型数组`int[][] map`表示地图的布局结构。 - 数组中的每个元素对应地图上的一个单元格。 - 数值的不同可以表示不同的地形...

    jfreechart-1.0.14

    例如,饼图用于显示各部分的比例关系,折线图用于展示数据趋势,柱状图用于比较不同类别的数量或值,散点图用于表示两个变量之间的关系,而甘特图则用于项目管理中的时间进度展示。 2. **自定义选项**:用户可以...

    JFreeChar的相关资料

    JFreeChart是一款强大的Java图表库,它为Java开发者提供了丰富的图表功能,包括柱状图、饼图、线形图、散点图、甘特图等多种图表类型,适用于各种数据分析和展示场景。本资料包深入讲解了JFreeChart的使用方法,并配...

    jChart使用帮助中文版本

    - 时间序列图(TimeSeriesChart):适用于按时间顺序展示数据变化。 ### 7. 进阶功能 除了基础功能外,jChart还支持多轴、图例、工具提示、缩放、平移等高级特性。例如,可以添加图例: ```java chart.addLegend...

    jfreecharts 报表

    JFreeChart是一款强大的Java图表库,它允许开发者在应用程序、Swing组件、Web应用以及各种报告中创建丰富的可视化图表。这个开源项目提供了多种类型的图表,如柱状图、饼图、线图、散点图、甘特图等,满足了数据分析...

    JfreeChart1.5.0

    **JFreeChart 1.5.0:Java 开源图表库详解** JFreeChart 是一个广泛使用的 Java 图形库,其版本1.5.0 提供了丰富的图表绘制功能,适用于各种应用程序,包括桌面应用、Web 应用以及服务器端应用。这个开源项目自2001...

    ImageMagick-GUI:用于 ImageMagick 的基于 Swing 的 GUI

    ImageMagick-GUI 是一个专为 ImageMagick 设计的图形用户界面(GUI),它采用 Java 的 Swing 框架构建,旨在简化对 ImageMagick 命令行工具的操作。ImageMagick 是一个功能强大的图像处理软件,支持多种图像格式,...

    Jfreechart.jar

    面积图可以同时显示数量和比例;散点图用于表示两个变量之间的关系;甘特图则用于项目管理,展示任务的时间进度。 2. **高度自定义**:开发者可以通过设置各种参数来自定义图表的外观,如颜色、字体、背景、网格线...

Global site tag (gtag.js) - Google Analytics