图片放缩
来源:互联网 发布:数据类型转化php 编辑:程序博客网 时间:2024/06/09 19:54
import javax.swing.*;
import java.awt.*;
import java.awt.BorderLayout;
import java.awt.EventQueue;
import javax.swing.ImageIcon;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
import java.awt.event.MouseMotionListener;
import javax.swing.JScrollPane;
import javax.swing.JTree;
import javax.swing.BoxLayout;
import javax.swing.tree.TreePath;
import javax.swing.tree.DefaultMutableTreeNode;
import javax.swing.tree.DefaultTreeModel;
import javax.swing.tree.*;
import javax.swing.event.*;
import java.awt.event.*;
public class Anniu extends JFrame {
//private static final long serialVersionUID = 1L;
private JLabel label = null;
private ImageIcon zp;
// private ZoomPanel zp;
//
public Anniu() {
JFrame frame=new JFrame();
frame.setSize(800, 600);
frame.setLayout(null);
zp = new ImageIcon("hy.jpg");
label = new JLabel(zp);
label.setBounds(100, 100, 400, 400);
frame.add(label);
addMouseWheelListener(new MouseWheelListener(){
public void mouseWheelMoved(MouseWheelEvent e){
//滚轮向前滑动 放大
if(e.getWheelRotation() < 0){
//label.enlargeImg();
}
//滚轮向后滑动 缩小
else{
// label.reduceImg();
}
}
});
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setVisible(true);
}
public static void main(String[] args){
new Anniu();
}
class ZoomPanel extends JPanel {
private ImageIcon ii;
private Dimension frameSize;
private int x, y, width, height;//图片的坐标、缩放的size
public ZoomPanel(Dimension fs, String imgPath) {
setBackground(Color.WHITE);
this.frameSize = fs;
ii = new ImageIcon(imgPath);
width = ii.getIconWidth();
height = ii.getIconHeight();
setImgPos();
}
//设定x、y坐标
public void setImgPos() {
x = (frameSize.width - width)/2 ;
y = (frameSize.height - height)/2;
}
//放大
public void enlargeImg(){
if(width >= ii.getIconWidth() * 2){
return;
}
if(height >= ii.getIconHeight() * 2){
return;
}
width += width / 9; //这里为什么是除以9呢 这个是数学问题 留给大家自己想吧 要是不明白,可以留言
height += height / 9;
setImgPos();
repaint();
}
//缩小
public void reduceImg(){
if(width <= ii.getIconWidth() / 5){
return;
}
if(height <= ii.getIconHeight() / 5){
return;
}
width -= width / 10;
height -= height / 10;
setImgPos();
repaint();
}
//重绘
public void paintComponent(Graphics g) {
super.paintComponent(g);
g.drawImage(ii.getImage(), x, y, width, height, null);
}
}
}
import java.awt.*;
import java.awt.BorderLayout;
import java.awt.EventQueue;
import javax.swing.ImageIcon;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
import java.awt.event.MouseMotionListener;
import javax.swing.JScrollPane;
import javax.swing.JTree;
import javax.swing.BoxLayout;
import javax.swing.tree.TreePath;
import javax.swing.tree.DefaultMutableTreeNode;
import javax.swing.tree.DefaultTreeModel;
import javax.swing.tree.*;
import javax.swing.event.*;
import java.awt.event.*;
public class Anniu extends JFrame {
//private static final long serialVersionUID = 1L;
private JLabel label = null;
private ImageIcon zp;
// private ZoomPanel zp;
//
public Anniu() {
JFrame frame=new JFrame();
frame.setSize(800, 600);
frame.setLayout(null);
zp = new ImageIcon("hy.jpg");
label = new JLabel(zp);
label.setBounds(100, 100, 400, 400);
frame.add(label);
addMouseWheelListener(new MouseWheelListener(){
public void mouseWheelMoved(MouseWheelEvent e){
//滚轮向前滑动 放大
if(e.getWheelRotation() < 0){
//label.enlargeImg();
}
//滚轮向后滑动 缩小
else{
// label.reduceImg();
}
}
});
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setVisible(true);
}
public static void main(String[] args){
new Anniu();
}
class ZoomPanel extends JPanel {
private ImageIcon ii;
private Dimension frameSize;
private int x, y, width, height;//图片的坐标、缩放的size
public ZoomPanel(Dimension fs, String imgPath) {
setBackground(Color.WHITE);
this.frameSize = fs;
ii = new ImageIcon(imgPath);
width = ii.getIconWidth();
height = ii.getIconHeight();
setImgPos();
}
//设定x、y坐标
public void setImgPos() {
x = (frameSize.width - width)/2 ;
y = (frameSize.height - height)/2;
}
//放大
public void enlargeImg(){
if(width >= ii.getIconWidth() * 2){
return;
}
if(height >= ii.getIconHeight() * 2){
return;
}
width += width / 9; //这里为什么是除以9呢 这个是数学问题 留给大家自己想吧 要是不明白,可以留言
height += height / 9;
setImgPos();
repaint();
}
//缩小
public void reduceImg(){
if(width <= ii.getIconWidth() / 5){
return;
}
if(height <= ii.getIconHeight() / 5){
return;
}
width -= width / 10;
height -= height / 10;
setImgPos();
repaint();
}
//重绘
public void paintComponent(Graphics g) {
super.paintComponent(g);
g.drawImage(ii.getImage(), x, y, width, height, null);
}
}
}
- 图片放缩
- 图片放缩
- js 图片放缩
- 多点触摸图片放缩
- 图片打开放缩操作
- 图片的旋转与放缩
- Java实现图片的放缩
- 仿QQ空间图片放缩查看
- 图片的缩、放与自由移动
- Jquery--------图片轮放
- css背景放图片
- Android图片上面放图片
- 如何在MIDP中实现图片放缩
- MIDP 1.0 的图片放缩, setClip实现
- 用JS控制图片大小按比例放缩或扩大图片
- Android中使用手势Gesture实现图片放缩
- ios 动画效果图片放缩,移动速度,透明视角。
- BCB 用TImage对图片像素放缩
- 面向对象编程思想
- (转)SQL注入中union查询ntext数据类型
- 如何理解编程语言的可移植性
- el表达式在js中的使用
- 笑尿
- 图片放缩
- 强人为自己,更强的人为大家
- 代理模式(Proxy)
- webQQ消息分析
- 一周极客热文:阿里“双11”背后的技术
- xcode release屏蔽NSLog或者自定义NSLog
- 按钮事件监听
- 解决tomcat7中文乱码
- 桥接模式(Bridge)