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
分享到:
相关推荐
如果要保持原图的比例,可以使用`AffineTransform`对象。 ```java g2.scale(scaleFactorX, scaleFactorY); // 缩放图形 g2.drawImage(image, 0, 0, null); // 重新绘制缩放后的图像 ``` 4. **使用键盘和鼠标...
在Java编程语言中,将图片设置为窗口的背景是一项常见的任务,特别是在开发图形用户界面(GUI)应用时。本文将详细讲解如何实现这一功能,并提供一个具体的实例代码——ImageTest.java,以及它所使用的背景图片1.JPG...
例如,在Python中,可以使用PIL库的`resize()`函数按比例缩放图片: ```python from PIL import Image # 打开图片 img = Image.open('input.jpg') # 定义新的尺寸,以保持宽高比 new_size = (width * scale, ...
4. 响应式设计:考虑不同分辨率的屏幕,图片可能会按比例缩放,因此在布局设计时需预留一定的适应性。 5. 图片资源的更新与替换:如果需要更新游戏资源,如增加新的角色或环境,开发者应设计好资源管理模块,方便...
- 使用`getWidth()`和`getHeight()`确保图片按窗口大小拉伸,如果需要保持原始比例,可能需要进行适当的缩放处理。 - `ImageIO.read`可能会抛出`IOException`,因此需要捕获并处理。 - 为了提高性能,可以考虑...
可以使用 `Image.getScaledInstance(width, height, Image.SCALE_SMOOTH)` 来缩放图片,保持其原始比例,并保持平滑效果。 5. **按钮状态和图片**: - 按钮有不同状态,如默认、按下、鼠标悬停等。可以为每个状态...
- **图像缩放**:使用`AffineTransformOp`类可以进行图像的等比例或非等比例缩放。 - **图像旋转**:同样通过`AffineTransformOp`,可以实现图像的旋转操作。 - **滤波操作**:包括均值滤波、高斯滤波、中值滤波...
“cismap-commons:Java Swing组件可构建基于标准的映射应用程序”这个标题揭示了cismap-commons是一个专门用于构建地图应用程序的Java库,它利用了Swing作为用户界面框架。这意味着它提供了一套组件和工具,使得...
Java统计图生成库JFreeChart是一个强大的开源工具,专为Java开发者设计,用于创建各种复杂的图表,如柱状图、饼图和折线图。它提供了丰富的功能和灵活性,使得在应用程序中集成可视化数据变得非常容易,而无需深入...
- Java提供了多种库来处理图像,如Java AWT(Abstract Window Toolkit)和Swing中的`java.awt.image`包,以及更强大的开源库如Apache Commons Imaging(原名Sanselan)、ImageJ和OpenCV的Java接口。 2. **图像分割...
放大可以通过调整绘图比例实现,即将鼠标位置附近的图像按比例放大并在画布上绘制。 4. **实时更新**:当鼠标移动时,更新放大镜视图的绘图区域。这需要在`mouseMoved(MouseEvent e)`方法中计算放大区域的坐标,并...
JFreeChart 是一个流行的开源 Java 图表库,它提供了丰富的图表类型,如饼图、柱状图、线图、散点图等,使得开发者可以轻松地在 Java 应用程序中创建高质量的图形展示。本文将深入探讨 JFreeChart 的使用和核心概念...
- 加载背景图片资源。 ##### 2. 地图构建原理 - **二维数组表示地图**: - 使用二维整型数组`int[][] map`表示地图的布局结构。 - 数组中的每个元素对应地图上的一个单元格。 - 数值的不同可以表示不同的地形...
例如,饼图用于显示各部分的比例关系,折线图用于展示数据趋势,柱状图用于比较不同类别的数量或值,散点图用于表示两个变量之间的关系,而甘特图则用于项目管理中的时间进度展示。 2. **自定义选项**:用户可以...
JFreeChart是一款强大的Java图表库,它为Java开发者提供了丰富的图表功能,包括柱状图、饼图、线形图、散点图、甘特图等多种图表类型,适用于各种数据分析和展示场景。本资料包深入讲解了JFreeChart的使用方法,并配...
- 时间序列图(TimeSeriesChart):适用于按时间顺序展示数据变化。 ### 7. 进阶功能 除了基础功能外,jChart还支持多轴、图例、工具提示、缩放、平移等高级特性。例如,可以添加图例: ```java chart.addLegend...
JFreeChart是一款强大的Java图表库,它允许开发者在应用程序、Swing组件、Web应用以及各种报告中创建丰富的可视化图表。这个开源项目提供了多种类型的图表,如柱状图、饼图、线图、散点图、甘特图等,满足了数据分析...
**JFreeChart 1.5.0:Java 开源图表库详解** JFreeChart 是一个广泛使用的 Java 图形库,其版本1.5.0 提供了丰富的图表绘制功能,适用于各种应用程序,包括桌面应用、Web 应用以及服务器端应用。这个开源项目自2001...
ImageMagick-GUI 是一个专为 ImageMagick 设计的图形用户界面(GUI),它采用 Java 的 Swing 框架构建,旨在简化对 ImageMagick 命令行工具的操作。ImageMagick 是一个功能强大的图像处理软件,支持多种图像格式,...
面积图可以同时显示数量和比例;散点图用于表示两个变量之间的关系;甘特图则用于项目管理,展示任务的时间进度。 2. **高度自定义**:开发者可以通过设置各种参数来自定义图表的外观,如颜色、字体、背景、网格线...