该楼层疑似违规已被系统折叠 隐藏此楼查看此楼

以下程序为 图片旋转功能

import java.awt.*;

import java.awt.event.*;

import java.awt.image.*;

import java.awt.geom.AffineTransform;

import javax.swing.*;

import javax.swing.event.*;

//图像旋转演示

public class RotateImageDemo extends JFrame{

JSlider jSlider = new JSlider(JSlider.HORIZONTAL,0,360,0); //设定旋转角度

ImagePane imagePane=new ImagePane(); //绘制图像的面板

public RotateImageDemo(){

super("图像旋转演示"); //调用父类构造函数

jSlider.setPaintTicks(true); //绘制标志位

jSlider.setMajorTickSpacing(45); //设置标志尺寸

jSlider.setMinorTickSpacing(5);

jSlider.setPaintLabels(true); //绘制出数字

jSlider.setBorder(new javax.swing.border.TitledBorder(BorderFactory.createEmptyBorder(), "图像的旋转度")); //设置边框

jSlider.addChangeListener(new ChangeListener() { //滑动条jSlider事件处理

public void stateChanged(ChangeEvent ce) {

int value=((JSlider) ce.getSource()).getValue(); //获取设置值

double angle =(float)value/180*Math.PI ; //得到旋转角度(弧度制)

imagePane.ratoteImage((float)angle); //旋转图像

}

});

Container container=getContentPane(); //得到窗口容器

imagePane.loadImage("image0.jpg"); //装载图片

container.add(imagePane,BorderLayout.CENTER); //增加组件到容器上

container.add(jSlider,BorderLayout.SOUTH);

setSize(800,680); //设置窗口尺寸

setVisible(true); //设置窗口可视

setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); //关闭窗口时退出程序

}

public static void main(String[] args){

new RotateImageDemo();

}

class ImagePane extends JPanel {

Image image;

BufferedImage bufImage; //用于显示的缓冲区图像

BufferedImage originalBufImage; //原始缓冲区图像

Graphics2D bufImageG; //缓冲区图像的图形环境

public void loadImage(String fileName) {

image = this.getToolkit().getImage(fileName); //取得图像

MediaTracker mt = new MediaTracker(this); //实例化媒体加载器

mt.addImage(image, 0); //增加图像到加载器中

try {

mt.waitForAll(); //等待图片加载

} catch (Exception ex) {

ex.printStackTrace(); //输出出错信息

}

originalBufImage = new BufferedImage(image.getWidth(this),image.getHeight(this),BufferedImage.TYPE_INT_ARGB); //创建原始缓冲区图像

bufImage = originalBufImage;

bufImageG = bufImage.createGraphics(); //创建bufImage的图形环境

bufImageG.drawImage(image, 0, 0, this); //传输源图像数据到缓冲区图像中

repaint(); //重绘组件

}

//过滤图像

public void ratoteImage(double angle) {

if (bufImage == null)

return; //如果bufImage为空则直接返回

BufferedImage filteredBufImage =new BufferedImage(image.getWidth(this) ,image.getHeight(this),BufferedImage.TYPE_INT_ARGB); //过滤后的图像

AffineTransform transform = new AffineTransform(); //仿射变换对象

transform.rotate(angle,400,300); //旋转图像

AffineTransformOp imageOp = new AffineTransformOp(transform, null);//创建仿射变换操作对象

imageOp.filter(originalBufImage, filteredBufImage);//过滤图像,目标图像在filteredBufImage

bufImage = filteredBufImage; //让用于显示的缓冲区图像指向过滤后的图像

repaint(); //重绘组件

}

//重载容器的paintComponent()方法

public void paint(Graphics g) {

super.paintComponent(g);

if (bufImage != null) {

Graphics2D g2 = (Graphics2D) g;

g2.drawImage(bufImage,0,0,this); //绘制图片

}

}

}

}

2个JAVA程序能放在一起吗_求JAVA大神把2程序功能组合在一起相关推荐

  1. Java中settext是什么意思_求问大神【textField.setText(0);是什么意思】

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 package 连连看; import java.awt.*; import java.awt.event.KeyEvent; import java.a ...

  2. java.util.scanner sc_关于Java的Scanner的问题,菜鸟求各大神解答

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 package leetcode; import java.util.ArrayList; import java.util.Collections; i ...

  3. java打字小游戏源码_求JAVA编写打字游戏源代码!

    展开全部 package chen; import java.awt.*; import java.awt.event.*; import java.awt.image.BufferedImage; ...

  4. java编写日期年月日的代码_求Java高手写道题设int year,month,day分别表示一个日期中的年月日,试编程求a) 对于任意三个整数,判...

    共回答了15个问题采纳率:100% import java.util.*; public class Test24 { public static void main(String[] args) { ...

  5. java汇编代码段,新手求助,跪求各位大神解答,怎么把这段汇编转成java代码

    本人新手,最近在折腾个so文件,通过IDA生成出来的脚本,有一段汇编代码不知道怎么用java去实现,求各位大神指点 loc_2498 LDR     R6, [SP,#0x50-0x40] LDR  ...

  6. java程序中用户名和密码_在Java应用程序中使用密码术

    java程序中用户名和密码 这篇文章描述了如何使用Java密码体系结构 (JCA),该体系结构使您可以在应用程序中使用密码服务. Java密码体系结构服务 JCA提供了许多加密服务,例如消息摘要和签名 ...

  7. java程序员比c多_为什么JAVA会比C语言使用的多?

    Java和C都是指令式语言(Imperative Language),不同的是Java有面向对象(OO)成分在里面,而C是完全面向过程的,C的高级版本C++.C#支持面向对象. 另外一个不同是,Jav ...

  8. java 项目 q a 表设计_《JAVA程序设计项目案例训练》期末试卷(A卷)..doc

    献给Java专业期末考试复习的同学 希望你们能考个好成绩 2010-2011学年第二学期哈尔滨华夏计算机职业技术学院期末考试 JAVA程序设计项目案例训练试题(A卷) 总分题号一二三四核分人题分402 ...

  9. 腾讯java程序设计师_腾讯大神耗时三年巅峰之作,立足实际开发,详解高并发程序设计...

    写在前面 毫无疑问,Java是目前服务端程序最常用的编程语言之一.大量的服务端应用基于这个看似简单的开发语言,然而容易入门并不代表容易精通.其中高并发程序设计就是一个重点,也是一个难点. ps:下面小 ...

最新文章

  1. MySQL如何找到表与表之间的关系?
  2. 真正开源的MongoDB的替代品,MangoDB!
  3. header中的参数讲解
  4. Nginx http keepalive提升链接效率
  5. 【Flask】SelectedField 同步数据库
  6. 华为全球第一、荣耀中国前二!余承东宣布新目标:苹果三星怎么看?
  7. C++11::lambda 的用法
  8. 我的凸优化学习之路(转)
  9. 一键自动生成字幕、提取视频字幕方案的详细评测与价格对比(含免费方案)
  10. Win10系统中英文切换
  11. 魅族 android版本升级,魅族系统更新APP
  12. 12306 官网硬卧下铺的选择(亲测可用)
  13. 编程珠玑续版-chp2 关联数组-awk
  14. array_column()函数用法
  15. __attribute__((weak)) 简介及作用
  16. 谷歌浏览器元素定位神器 -- chropath插件
  17. Hbase2.4.1集群安装:HMaster自动挂掉问题终于解决了
  18. SDH原理--2.SDH信号的帧结构
  19. 初学ARM的个人心得
  20. hive:创建udf函数过滤emoji表情等特殊字符

热门文章

  1. 面对自然灾害,科技能做什么?
  2. 京东将上线“自营房产”业务;iPhone 12 或取消附赠有线耳机;OpenBSD 6.7 发布 | 极客头条...
  3. ​“国产”AI框架争相开源,“领头羊”百度飞桨将扔重磅炸弹?
  4. Java 11 升级:“债务”“危机”
  5. “万物互联·泛在智能” 2019 嵌入式智能国际大会烧脑开幕!
  6. 用 Python 实现植物大战僵尸代码!
  7. 阿里云智能 AIoT 首席科学家丁险峰:阿里全面进军 IoT 这一年 | 问底中国 IT 技术演进
  8. Java 和 Python 疯狂 PK,等等,请不要放弃 C 语言
  9. 惠普往事:全球最大的 PC 制造商炼成记!| 极客头条
  10. 5G 登上“神坛”,区块链裁员求生!