<!--<br><br>Code highlighting produced by Actipro CodeHighlighter (freeware)<br>http://www.CodeHighlighter.com/<br><br>-->
1 import java.awt.*;
2 import java.awt.event.ActionEvent;
3 import java.awt.event.ActionListener;
4 import javax.swing.*;
5 public class Main extends JFrame implements ActionListener
6 {
7 private ImagePanel imgPane = null;
8 private JScrollPane scrollPane = null;
9 private JButton zoomin = null ;
10 private JButton zoomout = null;
11 public Main ()
12 {
13 super ("JScrollPane Demo");
14 imgPane = new ImagePanel ("/1.jpg");
15 imgPane.setPreferredSize (new Dimension (600, 400));
16 scrollPane = new JScrollPane (imgPane);
17 scrollPane.setVerticalScrollBarPolicy (JScrollPane.VERTICAL_SCROLLBAR_ALWAYS);
18 scrollPane.setHorizontalScrollBarPolicy (JScrollPane.HORIZONTAL_SCROLLBAR_ALWAYS);
19 zoomin = new JButton ("放大");
20 zoomout = new JButton ("缩小");
21 zoomin.setBounds (0,10,60,30);
22 zoomout.setBounds (80,10,60,30);
23 zoomin.addActionListener (this);
24 zoomout.addActionListener (this);
25 imgPane.add (zoomout,JLayeredPane.DRAG_LAYER);
26 imgPane.add (zoomin,JLayeredPane.DRAG_LAYER);
27 this.add (scrollPane);
28 setSize (600, 400);
29 setDefaultCloseOperation (EXIT_ON_CLOSE);
30 setVisible (true);
31 }
32 public static void main ( String[] args )
33 {
34 new Main ();
35 }
36 public void actionPerformed ( ActionEvent e )
37 {
38 if ((JButton) (e.getSource ()) == zoomin)
39 {
40 imgPane.enlarge ();
41 imgPane.setPreferredSize (imgPane.getPreferredSize ());
42 scrollPane.validate ();
43 }
44 else if ((JButton) (e.getSource ()) == zoomout)
45 {
46 imgPane.ensmall ();
47 imgPane.setPreferredSize (imgPane.getPreferredSize ());
48 scrollPane.validate ();
49 }
50 }
51 }
52
53 class ImagePanel extends JLayeredPane
54 {
55 private Dimension theSize = new Dimension (600, 400);
56 private ImageIcon img = null;
57 public ImagePanel (String imgpath )
58 {
59 super ();
60 setLayout (null);
61 this.img = new ImageIcon (getClass ().getResource (imgpath));
62 }
63 public void paintComponent ( Graphics g )
64 {
65 g.clearRect (0, 0, 1024, 768);
66 g.drawImage (img.getImage (), 0, 0, theSize.width, theSize.height,null);
67 }
68 public void enlarge ( )
69 {
70 theSize.width = (theSize.width * 101) / 100;
71 theSize.height = (theSize.height * 101) / 100;
72 setSize (theSize);
73 }
74 public void ensmall ( )
75 {
76 theSize.width = (theSize.width * 100) / 101;
77 theSize.height = (theSize.height * 100) / 101;
78 setSize (theSize);
79 }
80 public Dimension getPreferredSize ( )
81 {
82 return this.theSize;
83 }
84 }
85
分享到:
相关推荐
在这个简单的图片放大缩小程序中,我们主要会用到`ImageView`和它的`ScaleType`属性,以实现图片的缩放效果。 1. **ImageView和ScaleType**: `ImageView`是Android UI布局中的一个基本组件,用于显示图片。`...
在IT领域,开发一款图片缩放程序是一项常见的任务,它涉及到图像处理和编程技术。本项目是使用Delphi编程环境实现的,这是一款强大的对象 Pascal 编程工具,以其高效性和跨平台能力著称。Delphi 提供了丰富的组件库...
通过合理配置swiper组件的属性和绑定事件,可以实现用户在滑动时图片放大缩小的交互效果。 首先,需要了解swiper组件的基本属性配置,这些配置帮助定义轮播的行为和样式。例如,`previous-margin` 和 `next-margin`...
本文将深入探讨“易语言图片放大缩小例程”,包括源码解析、图片处理原理以及如何在易语言中实现显示和移动图片。 在易语言中,处理图片放大缩小的关键在于理解图像处理的基本概念和技术。首先,我们需要了解位图和...
bmp24位图片缩放程序,自己研究了好久,弄出来这个。用vc可以直接编译
在实现图片放大缩小时,我们需要了解基本的图像处理概念,如像素、位图、图像缩放算法等。常见的放大缩小算法有最近邻插值、双线性插值和更高级的立方插值等。最近邻插值简单快速,但可能会导致锯齿状边缘;双线性...
在微信小程序中,图片预览是一项常见的功能,用户可以点击图片进行放大查看,甚至支持手势缩放和双击恢复原比例。本知识点将详细介绍如何利用微信小程序的API和组件实现这一功能,特别是如何通过`scroll-view`来实现...
在微信小程序开发中,实现图片的缩放与拖动功能是一项常见的需求,特别是在构建互动性强、用户体验良好的应用时。本文将详细讲解如何在微信小程序中实现这一功能,并结合提供的"minapp-master"压缩包文件,解析其...
在微信小程序中,图片手指缩放功能是一种常见的交互设计,让用户可以通过双指捏合或分开来改变图片的大小。这个功能对于查看大图或者进行图片编辑等场景非常实用。然而,实现这一功能时可能会遇到一些挑战,比如如何...
在实现放大功能时,可以通过调整图片的缩放比例(scale)属性来实现。旋转功能同样可以在context中实现,通过调整角度(angle)属性来旋转图片。 在实现这些功能时,还需要注意动态数据管理,以避免频繁调用setData...
这个组件将支持图片的放大、缩小以及通过鼠标滚轮进行逐级缩放的功能。首先,我们需要理解Delphi的基础知识,它是基于Object Pascal的集成开发环境,提供了丰富的控件和库来构建桌面应用程序。 ### 1. Delphi控件...
标题“在线图片放大缩小”指的是一个在线服务或应用程序,它允许用户无损地调整图片的尺寸,无论是放大还是缩小。这种技术在数字媒体处理、网页设计、社交媒体分享以及个人照片编辑等领域都十分常见。下面我们将深入...
图片放大与缩小** PictureBox控件提供了调整图片大小的能力。通过设置`SizeMode`属性,我们可以实现图片的缩放。例如: - `PictureBoxSizeMode.AutoSize`:图片大小会自动适应控件的大小。 - `PictureBoxSizeMode...
总结起来,QT中实现图片放大缩小的功能主要涉及到QLabel的`setPixmap()`和QPixmap的`scaled()`方法,以及QPushButton的信号槽机制。通过灵活运用这些组件和方法,你可以轻松地创建出一个具有图片放大缩小功能的用户...
总结一下,微信小程序自定义组件实现图片单指拖动双指缩放效果主要涉及以下几个关键技术点: 1. 自定义组件的创建与使用,包括`wxml`、`wxss`、`js`和`json`文件的编写。 2. 事件监听和处理,特别是`touchstart`、`...
综上所述,实现Silverlight图片放大、缩小和移动功能涉及到多个技术层面,包括UI设计、事件处理、图形变换以及布局管理等。通过合理的设计和编程,我们可以创建出一个功能完善的图片查看器,满足用户在Web上的互动...
图片放大和缩小的操作实际上是对这些像素的重新布局和插值过程。 **图片放大**:在放大图像时,需要在原有的像素之间插入新的像素。这通常通过插值算法来完成,如最近邻插值、双线性插值或更复杂的三次卷积插值。...
标题“图片平滑缩放VC 图片放大缩小源码.rar”暗示了这个压缩包包含了一个使用VC++编写的程序,它能够实现图片的平滑放大和缩小。用户可以通过拖动滑块来动态改变图片的尺寸,同时在文本框中实时显示当前的放大倍率...
总的来说,“图片放大缩小”项目涉及了C#图形处理、Windows Forms控件、鼠标事件处理、图像操作等多个方面,是一个很好的学习和实践C# GUI编程的例子。通过这个项目,开发者可以深入理解如何利用.NET Framework提供...
vb 用picturebox实现图片放大缩小鼠标拖放滚轮缩放 这个测试程序满足基本要求,如有更高的要求可61303072qq联系本人 (滚轮是需要按住ctrl键然后按鼠标滚轮就可以了。可以在代码里屏蔽ctrl键的判断)