java-2d相关内容

Java:重叠JComponents的鼠标点击检测

我有一个具有空布局的JPanel.在此面板上,我绘制了一些自定义JComponent作为标记,小的红色圆形和线条. 当线条不是水平或垂直时,JComponent的“敏感区域"是一个矩形,其直线本身为斜边.这个过多的区域通常会将“鼠标事件"“窃取"到标记中. 如果用户没有单击实线,如何使MouseEvents“传递"到覆盖的对象? 解决方案 正确的方法是moonwave99建议的 ..
发布时间:2019-11-05 12:18:01 Java开发

Java更改JPanel的形状

我正在尝试做一些我认为很简单但找不到直接答案的事情.基本上,我想将JPanel的默认形状更改为圆形(或矩形以外的其他任何形状). 解决方案 您将需要提供自己的自定义绘制例程. 您将遇到的另一个问题是让布局管理器使用它,但是您可以提供自己的插图以在面板中提供可以安全使用的区域 您还希望使组件透明,以使组件的圆形位置之外的区域透明. 退房 自定义绘画 JCompnen ..
发布时间:2019-11-05 12:17:49 Java开发

滚动或调整框架时,JPanel中的绘图消失

我有一个大问题,我无法解决,我在JFrame中有一个JPanel.在此面板中,我绘制了许多东西(如图表),但它可以工作,但是当我滚动面板或调整框架大小时,图纸消失了! 我应该如何保留图纸? 代码: private void full_simulation_button(java.awt.event.ActionEvent evt) { if (jTextField1. ..
发布时间:2019-11-05 12:16:57 Java开发

Java Swing:将鼠标指针悬停在矩形上时行为不当

我需要通过contain(p)方法更改光标在矩形数组列表上的移动.问题是 我的第一个使用迭代器迭代矩形的算法无法正常工作.光标仅在将鼠标悬停在第一个矩形上时才会更改,在其他矩形中,它既不会通过显示光标变化来响应,也不会通过控制台光标悬停在它们上方?! 我的第二个解决方案也拒绝正常工作.我使用for循环遍历矩形,尽管矩形通过控制台指示鼠标悬停在矩形上方,但光标拒绝更改(最后一个矩形除外) ..
发布时间:2019-11-05 12:12:55 Java开发

在JPanel上绘图

我首先从NetbeanIDE的JPanel扩展创建create RubicPanel类,将其设置为黑色背景,将其放置在JFrame上,然后开始使用类似这样的其他类来绘制它. public class Drow { private final int SquareSize = 99; public void DrowRubic(RubicEntity GameRubic, Rubic ..
发布时间:2019-11-05 12:10:24 Java开发

将Shape的中心与JPanel的中心对齐

我一直试图将java2d形状的中心与JPanel的中心对齐,但没有成功.我能够使用getBounds方法对图像和许多2D形状(如平行四边形)执行此操作,但对于菱形却无法做到,尽管它们都遵循相同的模式.彻底地,当我从实际项目中准备SSCCE时,我无法正确地对齐它们. 我已经编写了一个drawShape方法来在中心上绘制形状.我不明白我要去哪里错了. 这是SSCCE: i ..
发布时间:2019-11-05 12:09:28 Java开发

Java-如何从JPanel清除图形

我正在创建一个简单的程序,在其中绘制一个黑色椭圆形,然后用鼠标单击.但是,我希望出现一个新的椭圆形,而一个旧的椭圆形消失.我将如何去做呢?我弄乱了在mousePressed方法中插入的removeAll()方法,但是它对我不起作用. removeAll()方法是否甚至适用于此?还是我应该使用其他东西?很抱歉,答案很明显,但是我对此还不陌生,正在尝试学习.任何建议将不胜感激.谢谢. impor ..
发布时间:2019-11-05 12:07:34 Java开发

Java Swing:将鼠标悬停在矩形上时,光标响应会非常缓慢

下面的代码是用户将鼠标光标移到一堆矩形上,并且当光标移到矩形上方时,该光标应变为手形光标,当光标不在给定的矩形上方时,该光标将恢复为默认的普通光标. 问题: 解决方案有效,但痛苦的缓慢.它们有许多种“给猫咪剥皮"的方法,因此我们可以对问题进行多种建模,并且解决方案可以是各种各样的,但是什么是恒定的,是我们必须循环使用迭代器遍历每个矩形,并使用contain()方法确定JPanel上的给定点是 ..
发布时间:2019-11-05 12:06:16 Java开发

如何在另一个JPanel内的JPanel上绘制形状?

我目前正在尝试在JFrame内另一个JPanel内的JPanel上绘制形状. 我搜索了Google和Youtube,发现如何在具有一个面板的JFrame中绘制形状,但是没有发现任何可以帮助我完成工作的东西. (也许我没看到什么). 到目前为止我看到的代码: public class GameScreen { public void paintComponent(Grap ..
发布时间:2019-11-05 12:02:27 Java开发

如何将BufferedImage保存为低于特定大小

(使用java 8)鉴于图像用户需要能够以像素为单位指定最小/最大图像大小以及以kbs为单位指定已保存图像的最大大小,图像将保存为jpg。 所以我通过调整缓冲图像大小来实现第一步: public static BufferedImage resizeUsingImageIO(Image srcImage,int size) { int w = srcImage.getWidth( ..
发布时间:2019-01-14 12:17:45 Java开发

java图形重绘方法实际上是如何工作的

我刚开始使用java 2d图形应用程序,在我的研究重绘是重绘我们的图形浪费了大量资源。 但是我想知道什么重绘是什么,是什么以及如何有效地使用它,为我画布上的许多可移动动态对象安全快速地线程? 解决方案 我首先要阅读执行自定义绘画和在AWT和Swing中绘画 重绘向 RepaintManager 发出请求以绘制部分或全部一个组件。 RepaintManager 将决定绘制的内容和绘制 ..
发布时间:2019-01-09 20:04:00 Java开发

用随机设置绘制一系列同心圆

我真的被困在如何编程这个。需要使用带有以下条件的Java drawArc方法绘制一系列8个同心圆 使用import java.util.Random library 提供在随机位置开始绘图(即,必须随机计算xy cooridinate)。 提供随机颜色每个圆圈 为每个圆圈提供随机直径 我当前的代码能够获取每个圆圈的随机颜色,但不清楚如何满足其他随机条件 //练习12 ..
发布时间:2019-01-08 19:00:50 Java开发

转换后如何获得绝对坐标

我正在绘制这样的Java 2D: g2.translate(getWidth()/ 2,getHeight()/ 2); g2.rotate(角度); g2.draw(new Ellipse2D.Double(-1,-1,1,1)); 现在我想在我的场景上打开椭圆的坐标。知道如何获得它吗?所以我需要从逻辑空间到物理空间的转换。 解决方案 获取 Affine ..
发布时间:2019-01-08 13:34:57 Java开发

如何在Java中以高性能显示许多SVG

我想要什么 我的目标是能够在Java的单个绘图区域上显示大量SVG图像,每个图像都有自己的平移/旋转/比例值。我正在寻找允许这个的最简单的解决方案,可选择甚至使用OpenGL来加快速度。 我尝试过什么 我最初的天真方法是使用SVGSalamander直接在JPanel上绘制,但性能很可怜。 我四处乱逛并了解到我应该做一些事情,比如手动将每个SVG转换为用createComp ..
发布时间:2019-01-08 12:30:29 Java开发

基于Java Swing的游戏框架。任何建议?

我正在使用Java Swing框架开发游戏。有没有人知道基于Swing的好框架?大多数情况下我都关心重绘的性能。 解决方案 Swing适用于简单的游戏,但如果你真的关心重绘的性能,你应该看一下基于OpenGL的框架之一。示例: http:// www.lwjgl.org/ - 相当低级的库,但速度非常快。基本上是原始OpenGL。 http://www.slick2d.org/ - ..
发布时间:2019-01-08 12:27:11 Java开发

Java GUI旋转和Rectangle的翻译

我正在尝试在JPanel中绘制一个矩形,该矩形将平移然后自行旋转以模仿汽车的运动。我已经能够使矩形平移和旋转,但它围绕(0,0)的原点旋转。我非常高兴我可以让矩形移动和旋转,因为我对Java GUI很新,但我似乎无法得到如何让矩形围绕它自己旋转,因为我尝试了更多它,当我初始化矩形并将其旋转45度它的位置已更改,我假设是从旋转方法追加的变换矩阵。 我检查了网站我怎么解决这个问题,但是我只发现了 ..
发布时间:2019-01-02 22:56:12 Java开发

无法用Java2D绘制细线

我正在尝试绘制一个1像素笔划的多边形。因为整个多边形按100缩放,我将线宽设置为0.01。但是出于某种原因,多边形被绘制的屏幕线宽看起来是100像素而不是1。 我正在使用 GeneralPath 作为多边形形状。如果我使用相同的方法绘制 Line2D 形状,则会绘制细线。 g2d.scale(100,100); g2d.setStroke(new BasicStroke(0.01 ..
发布时间:2018-12-29 21:04:46 Java开发

如何在java中使用普通矩形轮廓绘制圆角矩形

对于我的java应用程序,我需要一个圆形矩形,其轮廓看起来像一个普通的矩形,就像这样 我知道你可以通过在其中绘制一个普通矩形和一个RoundRect来做到这一点但是我不想在里面画一个RoundRect,因为我想在其中画出其他东西。 所以是一个带正常角的圆形矩形。我如何用Java绘制它? 问题是如果我使用图层,矩形看起来像这样: 角落填充错误的颜色。我如何防止这种情况? 解 ..
发布时间:2018-12-29 19:45:32 Java开发

通过Path2D检测鼠标指针

我构建了一个 Path2D 表示由直线组成的未闭合形状: 我希望能够检测到鼠标点击的时间和鼠标指针靠近(在几个像素内)路径。使用 包含 方法不起作用,因为算法将未闭合的形状视为隐式闭合(即通过在起点和终点之间画一条直线)。 有没有人知道实现这个的另一种机制? 解决方案 创建一个BasicStroke(宽度控制你的像素距离容差) 不用它绘制,只使用其createStroke ..
发布时间:2018-12-28 22:58:45 Java开发