2个JAVA程序能放在一起吗_求JAVA大神把2程序功能组合在一起
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
以下程序为 图片旋转功能
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程序功能组合在一起相关推荐
- Java中settext是什么意思_求问大神【textField.setText(0);是什么意思】
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 package 连连看; import java.awt.*; import java.awt.event.KeyEvent; import java.a ...
- java.util.scanner sc_关于Java的Scanner的问题,菜鸟求各大神解答
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 package leetcode; import java.util.ArrayList; import java.util.Collections; i ...
- java打字小游戏源码_求JAVA编写打字游戏源代码!
展开全部 package chen; import java.awt.*; import java.awt.event.*; import java.awt.image.BufferedImage; ...
- java编写日期年月日的代码_求Java高手写道题设int year,month,day分别表示一个日期中的年月日,试编程求a) 对于任意三个整数,判...
共回答了15个问题采纳率:100% import java.util.*; public class Test24 { public static void main(String[] args) { ...
- java汇编代码段,新手求助,跪求各位大神解答,怎么把这段汇编转成java代码
本人新手,最近在折腾个so文件,通过IDA生成出来的脚本,有一段汇编代码不知道怎么用java去实现,求各位大神指点 loc_2498 LDR R6, [SP,#0x50-0x40] LDR ...
- java程序中用户名和密码_在Java应用程序中使用密码术
java程序中用户名和密码 这篇文章描述了如何使用Java密码体系结构 (JCA),该体系结构使您可以在应用程序中使用密码服务. Java密码体系结构服务 JCA提供了许多加密服务,例如消息摘要和签名 ...
- java程序员比c多_为什么JAVA会比C语言使用的多?
Java和C都是指令式语言(Imperative Language),不同的是Java有面向对象(OO)成分在里面,而C是完全面向过程的,C的高级版本C++.C#支持面向对象. 另外一个不同是,Jav ...
- java 项目 q a 表设计_《JAVA程序设计项目案例训练》期末试卷(A卷)..doc
献给Java专业期末考试复习的同学 希望你们能考个好成绩 2010-2011学年第二学期哈尔滨华夏计算机职业技术学院期末考试 JAVA程序设计项目案例训练试题(A卷) 总分题号一二三四核分人题分402 ...
- 腾讯java程序设计师_腾讯大神耗时三年巅峰之作,立足实际开发,详解高并发程序设计...
写在前面 毫无疑问,Java是目前服务端程序最常用的编程语言之一.大量的服务端应用基于这个看似简单的开发语言,然而容易入门并不代表容易精通.其中高并发程序设计就是一个重点,也是一个难点. ps:下面小 ...
最新文章
- MySQL如何找到表与表之间的关系?
- 真正开源的MongoDB的替代品,MangoDB!
- header中的参数讲解
- Nginx http keepalive提升链接效率
- 【Flask】SelectedField 同步数据库
- 华为全球第一、荣耀中国前二!余承东宣布新目标:苹果三星怎么看?
- C++11::lambda 的用法
- 我的凸优化学习之路(转)
- 一键自动生成字幕、提取视频字幕方案的详细评测与价格对比(含免费方案)
- Win10系统中英文切换
- 魅族 android版本升级,魅族系统更新APP
- 12306 官网硬卧下铺的选择(亲测可用)
- 编程珠玑续版-chp2 关联数组-awk
- array_column()函数用法
- __attribute__((weak)) 简介及作用
- 谷歌浏览器元素定位神器 -- chropath插件
- Hbase2.4.1集群安装:HMaster自动挂掉问题终于解决了
- SDH原理--2.SDH信号的帧结构
- 初学ARM的个人心得
- hive:创建udf函数过滤emoji表情等特殊字符
热门文章
- 面对自然灾害,科技能做什么?
- 京东将上线“自营房产”业务;iPhone 12 或取消附赠有线耳机;OpenBSD 6.7 发布 | 极客头条...
- ​“国产”AI框架争相开源,“领头羊”百度飞桨将扔重磅炸弹?
- Java 11 升级:“债务”“危机”
- “万物互联·泛在智能” 2019 嵌入式智能国际大会烧脑开幕!
- 用 Python 实现植物大战僵尸代码!
- 阿里云智能 AIoT 首席科学家丁险峰:阿里全面进军 IoT 这一年 | 问底中国 IT 技术演进
- Java 和 Python 疯狂 PK,等等,请不要放弃 C 语言
- 惠普往事:全球最大的 PC 制造商炼成记!| 极客头条
- 5G 登上“神坛”,区块链裁员求生!