我想请教各位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方法应用问题相关推荐

  1. java多线程中的join方法详解

    java多线程中的join方法详解 方法Join是干啥用的? 简单回答,同步,如何同步? 怎么实现的? 下面将逐个回答. 自从接触Java多线程,一直对Join理解不了.JDK是这样说的:join p ...

  2. Shell-通过shell启动Java类中的main方法 + 通过Shell启动jar包

    文章目录 概述 shell启动Java类中的main方法 启动脚本分析 启动脚本 shell启动jar包 概述 Java程序 运行在linux主机上, 通过shell脚本启动为进程. Java程序中 ...

  3. Java 输出流中的flush方法

    Java 输出流中的flush方法 Java中的IO流中的输出流一般都有flush这个操作,这个操作的作用是强制将缓存中的输出流(字节流,字符流等)强制输出. 为什么会有这么个方法啊? 因为输出流在进 ...

  4. Java 8 中的工厂方法模式

    为什么80%的码农都做不了架构师?>>>    先唠叨一句工厂方法模式的定义: 定义一个创建对象的接口,但让实现这个接口的类来决定实例化哪个类.工厂方法让类的实例化推迟到子类中进行. ...

  5. Java 8中的默认方法(Defender方法)简介

    我们都知道Java中的接口仅包含方法声明,而没有实现,并且任何实现该接口的非抽象类都必须提供实现. 让我们看一个例子: public interface SimpleInterface {public ...

  6. Java1.8接口方法都是抽象,判断(1分) Java接口中所有的方法都是抽象的。

    判断(1分) Java接口中所有的方法都是抽象的. 更多相关问题 [配伍题,B型题] (1).木瓜(). (2).独活().(3).防己().(4).蕲蛇(). [比较题] (1).质硬不易折断的是( ...

  7. 编写高质量代码:改善Java程序的151个建议 (第1章 Java开发中通用的方法和准则)

    第1章 Java开发中通用的方法和准则 The reasonable man adapts himself to the world;the unreasonable one persists in ...

  8. 01-第一章 Java开发中通用的方法和准则

    建议1:不用在常量和变量中出现易混淆的字母 包括名全小写,类名首字母全大写,常量全部大写并用下划线分割,变量采用驼峰命名法(Camel Case)命名等. 例如: package com.compan ...

  9. java yeild_Java 中 Thread.yield() 方法详解

    对于很多初学 Java 线程的小伙伴们,很容易将 Thread 类里的 yield() 方法理解错误,或者理解得不够透彻,先看下源码: public static native void yield( ...

最新文章

  1. gradle学习(1)hello world
  2. Requirejs2.0笔记
  3. C++ Primer 5th笔记(10)chapter10 泛型算法 :谓词
  4. VTK修炼之道16:图像处理_窗口分割和图像融合(ViewportvtkImageBlend)
  5. Android通知固定,[20180607已更新] 使用NJS控制Android通知栏,不用个推实现本地消息推送(Local Notification)...
  6. LeetCode 777. 在LR字符串中交换相邻字符(双指针)
  7. 从零开始搭二维激光SLAM --- 文章索引
  8. CISCO 路由器启动自动配置
  9. 非常赞的文章!告诉你一个你知其然却不知其所以然的硅谷
  10. ssh 免密配置、修改hadoop配置文件
  11. 国家统计局 2019年省市区数据(自取)
  12. Linux 拷贝文件
  13. 调用支付宝第三方支付接口详解(沙箱环境)
  14. C语言练习题,编写程序实现以下功能。从键盘输入一个整数,若输入数字0,则屏幕显示:“Sunday“;若输入数字1,则屏幕显示:“Monday“;若输入数字2,则屏幕显示:“Tuesday“;若输入数字
  15. 图像翻译/Transformer:ITTR: Unpaired Image-to-Image Translation with Transformers用Transfor进行非配对图像对图像的转换
  16. Junit单元测试报错Class not found可能原因
  17. UEStudio 9 注册码
  18. Java 常用工具类 - 校验身份证 IdCardUtils
  19. 电脑没有无线网卡如何联网
  20. UART的break信号

热门文章

  1. Win11和Win10家庭版添加组策略gpedit.msc
  2. 热度算法php,微博热门的排序算法
  3. DELL R730 主板坏了,Raid5硬盘移到同型号服务器备忘
  4. 基于php的人事档案管理系统——计算机毕业设计
  5. SDN(Software Defined Network):软件定义网络
  6. 微信10亿日活场景下,微服务架构实践!15页PPT全解
  7. 视频播放器选择怎样的丢帧策略~~
  8. APP启动应用优化加速和卡顿
  9. redis搭建主从哨兵模式+分片集群部署(redis系列二)
  10. Linux环境部署(Deepin系统)