java rotate_Graphic2D中的rotate方法应用问题
我想请教各位Graphics2D中的g2d.rotate(Math.PI/2,200,200);是不是指将图片以(200,200)为旋转中心,逆时针旋转90度?另外我写了个很小的测试程序,但是点击旋转按钮,图片怎么都不...
我想请教各位Graphics2D中的
g2d.rotate(Math.PI/2, 200, 200);
是不是指将图片以(200, 200)为旋转中心,逆时针旋转90度?
另外我写了个很小的测试程序,但是点击旋转按钮,图片怎么都不旋转,请教高手是什么问题,代码如下:
//MyPanel.java
import java.awt.*;
import javax.swing.*;
public class MyPanel extends JPanel{
private Graphics g;
private Image image;
public void paintComponent(Graphics g){
this.g = g;
image = new ImageIcon("src/test.jpg").getImage();
g.drawImage(image, 3, 4, this);
}
public Graphics getGraphic(){
return g;
}
public Image getImage(){
return image;
}
}
//DrawImage.java
import java.awt.Graphics;
import java.awt.Graphics2D;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.*;
public class DrawImage implements ActionListener {
JFrame frame; //主窗体
MyPanel panel;
JButton rotate; //控制旋转的按钮
public DrawImage(){
frame = new JFrame("绘图Demo");
frame.setSize(400, 500);
frame.setAlwaysOnTop(true);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setLayout(null);
frame.setVisible(true);
panel = new MyPanel();
panel.setBounds(0, 0, 400, 400);
frame.getContentPane().add(panel);
rotate = new JButton("逆旋"); //每按一次逆时针旋转90度
rotate.setBounds(5, 405, 390, 90);
frame.getContentPane().add(rotate);
rotate.addActionListener(this);
}
public static void main(String[]args){
new DrawImage();
}
public void actionPerformed(ActionEvent e) {
Graphics g = panel.getGraphic();
Graphics2D g2d = (Graphics2D)g;
g2d.rotate(Math.PI/2, 200, 200);
g2d.drawImage(panel.getImage(), 0, 0, 400, 400, null);
}
}
不胜感激!
我已经知道了。
不过二楼的代码不符合我的要求啊,我的要求是每点击一次按钮,逆时针旋转固定角度90度。
展开
java rotate_Graphic2D中的rotate方法应用问题相关推荐
- java多线程中的join方法详解
java多线程中的join方法详解 方法Join是干啥用的? 简单回答,同步,如何同步? 怎么实现的? 下面将逐个回答. 自从接触Java多线程,一直对Join理解不了.JDK是这样说的:join p ...
- Shell-通过shell启动Java类中的main方法 + 通过Shell启动jar包
文章目录 概述 shell启动Java类中的main方法 启动脚本分析 启动脚本 shell启动jar包 概述 Java程序 运行在linux主机上, 通过shell脚本启动为进程. Java程序中 ...
- Java 输出流中的flush方法
Java 输出流中的flush方法 Java中的IO流中的输出流一般都有flush这个操作,这个操作的作用是强制将缓存中的输出流(字节流,字符流等)强制输出. 为什么会有这么个方法啊? 因为输出流在进 ...
- Java 8 中的工厂方法模式
为什么80%的码农都做不了架构师?>>> 先唠叨一句工厂方法模式的定义: 定义一个创建对象的接口,但让实现这个接口的类来决定实例化哪个类.工厂方法让类的实例化推迟到子类中进行. ...
- Java 8中的默认方法(Defender方法)简介
我们都知道Java中的接口仅包含方法声明,而没有实现,并且任何实现该接口的非抽象类都必须提供实现. 让我们看一个例子: public interface SimpleInterface {public ...
- Java1.8接口方法都是抽象,判断(1分) Java接口中所有的方法都是抽象的。
判断(1分) Java接口中所有的方法都是抽象的. 更多相关问题 [配伍题,B型题] (1).木瓜(). (2).独活().(3).防己().(4).蕲蛇(). [比较题] (1).质硬不易折断的是( ...
- 编写高质量代码:改善Java程序的151个建议 (第1章 Java开发中通用的方法和准则)
第1章 Java开发中通用的方法和准则 The reasonable man adapts himself to the world;the unreasonable one persists in ...
- 01-第一章 Java开发中通用的方法和准则
建议1:不用在常量和变量中出现易混淆的字母 包括名全小写,类名首字母全大写,常量全部大写并用下划线分割,变量采用驼峰命名法(Camel Case)命名等. 例如: package com.compan ...
- java yeild_Java 中 Thread.yield() 方法详解
对于很多初学 Java 线程的小伙伴们,很容易将 Thread 类里的 yield() 方法理解错误,或者理解得不够透彻,先看下源码: public static native void yield( ...
最新文章
- gradle学习(1)hello world
- Requirejs2.0笔记
- C++ Primer 5th笔记(10)chapter10 泛型算法 :谓词
- VTK修炼之道16:图像处理_窗口分割和图像融合(ViewportvtkImageBlend)
- Android通知固定,[20180607已更新] 使用NJS控制Android通知栏,不用个推实现本地消息推送(Local Notification)...
- LeetCode 777. 在LR字符串中交换相邻字符(双指针)
- 从零开始搭二维激光SLAM --- 文章索引
- CISCO 路由器启动自动配置
- 非常赞的文章!告诉你一个你知其然却不知其所以然的硅谷
- ssh 免密配置、修改hadoop配置文件
- 国家统计局 2019年省市区数据(自取)
- Linux 拷贝文件
- 调用支付宝第三方支付接口详解(沙箱环境)
- C语言练习题,编写程序实现以下功能。从键盘输入一个整数,若输入数字0,则屏幕显示:“Sunday“;若输入数字1,则屏幕显示:“Monday“;若输入数字2,则屏幕显示:“Tuesday“;若输入数字
- 图像翻译/Transformer:ITTR: Unpaired Image-to-Image Translation with Transformers用Transfor进行非配对图像对图像的转换
- Junit单元测试报错Class not found可能原因
- UEStudio 9 注册码
- Java 常用工具类 - 校验身份证 IdCardUtils
- 电脑没有无线网卡如何联网
- UART的break信号