java的getshape()_JAVA(Swing)中的镜像形状
大家好,
我有一个功课,涉及在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)中的镜像形状相关推荐
- 斗牛java主程序设计_Java swing中制作斗牛游戏如何牛点
雷晓东NANA 2019.01.08 采纳率:63% 等级:39 已帮助:98296人 进口的java.awt.BorderLayout;进口java.awt.event.MouseEvent中 ...
- java jtextarea边框_java swing中的JTextArea边框
有一对夫妇的方式,你可能能够做到这一点,你可以只需将边界后的边界应用于框架或JTextArea或者您可以支持根据您的需求 根据您的需要将Border的值转换为任意方法我的选择是考虑使用构建器模式,这将 ...
- java集合刷新面板_java Swing 中 面板刷新的问题。。求指教 。 高手在哪里啊。。。...
javaswing中repaint()刷新面板的问题 求指教...代码如下:运行后点击按钮1,面板没刷新,需要缩放面板才能看到新的面板.我用计时器或则线程来调用repaint(),好像都没... ja ...
- java swing 控件拖动_java swing中实现拖拽功能示例
java实现拖拽示例 Swing中实现拖拽功能,代码很简单,都有注释,自己看,运行效果如下图: package com; import java.awt.*;import java.awt.datat ...
- java swing 图片容器_Java Swing中两种设置背景图(容器图片)
在java swing中需要为容器添加图片,或者背景图片. 提供两种简单的解决方案,一种利用JPanel,另一种利用JLabel 1.JPanel(源代码) package oo; import ja ...
- java swing 聊天气泡_Java Swing中的聊天气泡
本文将向您解释"如何在Java swing应用程序中绘制聊天气泡?" 聊天气泡与呼出气泡或思想气泡相同. 今天,大多数聊天应用程序都以这种格式显示转换,因此本文将帮助您在用Java ...
- java中蛇的属性有哪些_Java Swing中的蛇游戏-我的蛇只会长成
我试图在Swing中制作经典的Snake游戏,并设法使Snake移动,但是当它移动时,它会变得无限长,因为它永远不会抹掉它的尾巴. 我一直在使用validate()和repaint(),但是没有任何效 ...
- java swing背景_java Swing中添加背景图片(总结)
在java GUI图形化设计中,Swing组件添加背景图片主要有两中情况:1,在Jpanl面板中添加背景图片,2,在jLable中添加背景图片 首先介绍一种最巧妙的背景图片添加方法, 1.利用JLab ...
- swing 聊天气泡背景_Java Swing中的聊天气泡
swing 聊天气泡背景 本文将向您解释"如何在Java swing应用程序中绘制聊天气泡?" 聊天气泡与呼出或提示气泡相同. 今天,大多数聊天应用程序都以这种格式显示转换,因此本 ...
最新文章
- 数据库系统概论期末复习以及知识整理
- Coding Party 邀你出战!飞桨黑客马拉松线下场来啦
- 寂寞的hasLayout
- 国盾量子等参与中国量子通信行业首批标准编制 量子通信商用再加速
- 通用职责分配软件原则之5-控制器原则
- matlab安装第三方库,Matlab调用cpp+第三方库
- 软件测试—软件测试基础知识—(五)软件测试模型
- python---之os.path.splitext(“文件路径”)
- c语言成绩管理系统1.0,c语言成绩管理系统完整附源码v1.0 免费版
- 基于DEM数据的河流提取
- Flash烛光动画特效实例教程
- 雷霆战机单机老版本_雷霆战机单机版
- Linux0.11系列开篇
- 笔记:WPS关于设置页眉页脚的问题
- 新知实验室 TRTC在线上教育场景中的一种应用实践
- 干净的国内系统镜像源
- Google guava之BiMap简介说明
- 文件服务器查询重复文件,DupScout – 重复文件扫描、删除或移动的免费工具
- 什么是 Linux ?什么是操作系统
- php msvcr110,msvcr110.dll丢失的解决方法是什么