大家好,

我有一个功课,涉及在Swing GUI中绘制和操作形状.

我遇到了一个问题,当我试图镜像我的形状时,我得不到我想要的结果.

drawallnodes方法在Jpanels paintComponent中调用.

public void drawallnodes(ArrayList nodes, Graphics2D g2)

{

int arraysize = nodes.size();

ArrayList temparray;

AffineTransform at = new AffineTransform();

if (nodes.size() != 0)

{

System.out.println("nodes.size " + nodes.size());

if (currentarrayindex >= 0)

{

AffineTransform afx = new AffineTransform();// for rotate

for (int i = 0; i <= currentarrayindex; i++)

{

if (nodes.get(i).getWasAngleChanged())

{

afx.rotate(

Math.toRadians(nodes.get(i).getAngleInDegrees()),

nodes.get(i).getCenter().x,

nodes.get(i).getCenter().y);

nodes.get(i).setShape(

afx.createTransformedShape(nodes.get(i).getShape()));

nodes.get(i).setWasAngleChanged(false);

nodes.get(i).setokrajRectangle();

}

try

{

Rectangle r = nodes.get(i).getShape().getBounds();

}

catch (Exception e)

{

System.out.println(

"Exception found at getbounds, no shape with getbounds found");

}

AffineTransform saveXform = g2.getTransform();

g2.setColor(nodes.get(i).getColor());

int w = getWidth();

// it gets the JPanels width, which is set to 758px

at = AffineTransform.getTranslateInstance(w, 0);

System.out.println("*********Get width of shape: " + w);

at.scale(-1, 1); // mirror -x, y

g2.setPaint(Color.red);

g2.draw(at.createTransformedShape(nodes.get(i).getShape()));

try

{

g2.drawString(nodes.get(i).getText(),

(int) nodes.get(i).getCenter().getX(),

(int) nodes.get(i).getCenter().getY());

}

catch (Exception e)

{

System.err.println("No text found at node");

}

try

{

g2.draw((Shape) nodes.get(i).getShape());

}

catch (Exception e)

{

System.err.println("No shape found at node");

}

// g2.transform(AffineTransform.getRotateInstance(0, 1));

g2.setTransform(saveXform);

}

}

}

}

当我镜像Shape时,例如我在右侧绘制,但镜像图像出现在左侧…我想镜像形状并在同一个地方获得镜像形状而不是我的jpanel ….

谢谢您的帮助

java的getshape()_JAVA(Swing)中的镜像形状相关推荐

  1. 斗牛java主程序设计_Java swing中制作斗牛游戏如何牛点

    雷晓东NANA 2019.01.08 采纳率:63%    等级:39 已帮助:98296人 进口的java.awt.BorderLayout;进口java.awt.event.MouseEvent中 ...

  2. java jtextarea边框_java swing中的JTextArea边框

    有一对夫妇的方式,你可能能够做到这一点,你可以只需将边界后的边界应用于框架或JTextArea或者您可以支持根据您的需求 根据您的需要将Border的值转换为任意方法我的选择是考虑使用构建器模式,这将 ...

  3. java集合刷新面板_java Swing 中 面板刷新的问题。。求指教 。 高手在哪里啊。。。...

    javaswing中repaint()刷新面板的问题 求指教...代码如下:运行后点击按钮1,面板没刷新,需要缩放面板才能看到新的面板.我用计时器或则线程来调用repaint(),好像都没... ja ...

  4. java swing 控件拖动_java swing中实现拖拽功能示例

    java实现拖拽示例 Swing中实现拖拽功能,代码很简单,都有注释,自己看,运行效果如下图: package com; import java.awt.*;import java.awt.datat ...

  5. java swing 图片容器_Java Swing中两种设置背景图(容器图片)

    在java swing中需要为容器添加图片,或者背景图片. 提供两种简单的解决方案,一种利用JPanel,另一种利用JLabel 1.JPanel(源代码) package oo; import ja ...

  6. java swing 聊天气泡_Java Swing中的聊天气泡

    本文将向您解释"如何在Java swing应用程序中绘制聊天气泡?" 聊天气泡与呼出气泡或思想气泡相同. 今天,大多数聊天应用程序都以这种格式显示转换,因此本文将帮助您在用Java ...

  7. java中蛇的属性有哪些_Java Swing中的蛇游戏-我的蛇只会长成

    我试图在Swing中制作经典的Snake游戏,并设法使Snake移动,但是当它移动时,它会变得无限长,因为它永远不会抹掉它的尾巴. 我一直在使用validate()和repaint(),但是没有任何效 ...

  8. java swing背景_java Swing中添加背景图片(总结)

    在java GUI图形化设计中,Swing组件添加背景图片主要有两中情况:1,在Jpanl面板中添加背景图片,2,在jLable中添加背景图片 首先介绍一种最巧妙的背景图片添加方法, 1.利用JLab ...

  9. swing 聊天气泡背景_Java Swing中的聊天气泡

    swing 聊天气泡背景 本文将向您解释"如何在Java swing应用程序中绘制聊天气泡?" 聊天气泡与呼出或提示气泡相同. 今天,大多数聊天应用程序都以这种格式显示转换,因此本 ...

最新文章

  1. 数据库系统概论期末复习以及知识整理
  2. Coding Party 邀你出战!飞桨黑客马拉松线下场来啦
  3. 寂寞的hasLayout
  4. 国盾量子等参与中国量子通信行业首批标准编制 量子通信商用再加速
  5. 通用职责分配软件原则之5-控制器原则
  6. matlab安装第三方库,Matlab调用cpp+第三方库
  7. 软件测试—软件测试基础知识—(五)软件测试模型
  8. python---之os.path.splitext(“文件路径”)
  9. c语言成绩管理系统1.0,c语言成绩管理系统完整附源码v1.0 免费版
  10. 基于DEM数据的河流提取
  11. Flash烛光动画特效实例教程
  12. 雷霆战机单机老版本_雷霆战机单机版
  13. Linux0.11系列开篇
  14. 笔记:WPS关于设置页眉页脚的问题
  15. 新知实验室 TRTC在线上教育场景中的一种应用实践
  16. 干净的国内系统镜像源
  17. Google guava之BiMap简介说明
  18. 文件服务器查询重复文件,DupScout – 重复文件扫描、删除或移动的免费工具
  19. 什么是 Linux ?什么是操作系统
  20. php msvcr110,msvcr110.dll丢失的解决方法是什么

热门文章

  1. python-字符串与字节-0222
  2. redis-稿件-python连接redis-使用连接池的方式来创建
  3. django-前端上传图片190912
  4. 机器学习——Day 3 多元线性回归
  5. IP和网段及子网掩码基础知识
  6. passive 的事件监听器
  7. android权限--android开发中的权限及含义(下)
  8. 分享个 之前写好的 android 文件流缓存类,专门处理 ArrayList、bean。
  9. js:如何文艺地理解闭包
  10. 利用RMAN转移裸设备到文件系统