问题标签 [paint]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
3041 浏览

java - JComponent 不可见,有人知道为什么吗?

这是我的 JFrame 代码:

这是代码MyCustomWidget

问题是,JComponent 没有显示在窗口中,我不明白为什么。我什至添加了一个widget.setVisible(true)只是为了确保它是可见的。没有任何效果。你能看出我做错了什么吗?

在你们建议的修改之后,现在的代码是:

包javaapplication2;

和:

0 投票
3 回答
1522 浏览

java - 来自线程内的实例化组件不会重绘到 Java 中的 JFrame

我有一堂像这样的课

}

我在 JFrame 主类中实例化这个类,并像这样启动它的线程:

我在 JFrame 构造函数中调用了这个 initBlockSpawner() 函数。Block Class 确实有点大,但是简单来说,它实现了runnable,在其构造函数的末尾调用了它的run() 方法。run() 方法只会使块以一定的速度下落。我曾尝试在 JFrame 构造函数中手动实例化新块,它们可以工作,它们会重新绘制并掉落。但是每当我想从其他线程实例化块时,它们似乎会下降(即它的属性会更新每个循环),但它们不会在 JFrame 中绘制。

作为附加信息,我使用的是 NetBeans,并且由于应用程序入口点位于 JFrame 类上,因此 main 方法如下所示:

我在 Java 线程、awt 事件和 swing 组件方面没有太多经验。但是我在这里读到的东西让我觉得我的问题是只有一个线程可以控制摆动组件,或者什么......有什么办法可以解决我的问题吗?

提前致谢。

编辑:附加信息,每当我从线程检查实例化多维数据集上的 toString 方法时,它们都会给我这个 [,0,0,0x0],但是当我在同一个 JFrame 类中实例化它们时,它们会给我这个结果 [,0, 0,328x552],它们出现在框架上。这个 328x552 值与 getPreferredSize() 返回的组件维度相同...我试图通过像这样实例化它们来强制它们达到该维度:

但它没有用,任何人都知道这个 [,0,0,328x552] 值可能意味着什么?

谢谢大家,我想我们快到了!

编辑 2:我意识到组件的大小是 x:0 y:0,这是为什么呢?我将 BlockSpawner 的 run() 方法更改为如下内容:

第一次运行,一切正常!甚至这对块在 JFrame 上绘制并正确落下,但是在 Thread.sleep() 之后,其余的只是被实例化,但是它们的 getSize() 方法给了我 x:0 y:0; 这仍然与 One Dispatcher Thread 问题有关吗?还是现在不同了?

0 投票
4 回答
1704 浏览

flash - 如何为白板应用程序实现平滑的绘制曲线?

我正在 ActionScript 3 中构建一个简单的白板应用程序。ActionScript 中的大多数白板或绘画应用程序倾向于使用间隔、计时器、mouseMove 事件或 enterFrame 事件来跟踪鼠标位置并在跟踪点之间绘制线条或画笔.

我想要实现的是像 Photoshop 这样的程序可以在使用画笔工具进行绘画时渲染出漂亮的平滑画线。在 Photoshop 中,无论您在画布上移动鼠标的速度有多快,绘制的线条总是以平滑的曲线边缘结束。在我的应用程序中,使用前面提到的任何方法,将画笔渲染到舞台的函数调用之间总是存在延迟。因此,当以圆形方式非常快速地移动鼠标时,使用这些技术中的任何一种都可能导致尖锐的拐角线。

这对我来说并不奇怪,我只是不知道如何才能像 Photoshop 的画笔工具那样实现更平滑的线条。请注意,我的应用程序的画笔主要基于形状,不使用或不能使用绘图 API 来绘制连续线条。换句话说, graphics.curveTo() 不是一个选项。我还将画笔生成的 Sprites 或 Shapes 渲染到 BitmapData 实例。

0 投票
5 回答
2239 浏览

asp.net-mvc - 从浏览器画布保存图片

我目前正在用 ASP .NET MVC 开发一个网站,我需要用户能够在画布上绘制图片的功能,该画布可以保存在数据库中。这样做的最佳方法是什么?最好是一个非常轻量级的解决方案。我在想 Flash 将是最容易访问的平台,并且可能有一些很好的免费解决方案。

谢谢

0 投票
1 回答
1015 浏览

java - JCombobox的弹出列表未完全绘制

我有一个JInternalFramein a JDesktop,我也有一个JComboBox在内部框架中。问题如下所示。

问题

如何JComboBox在外面做画JInternalFrame,让弹窗列表可以完整显示?使用玻璃板是最佳解决方案,还是不好的做法


解决方案: 我找到了解决方案;只需覆盖以下getSize()方法JComboBox

0 投票
2 回答
1138 浏览

java - Java优化为游戏绘制背景图像

作为任务的一部分,我正在重建“塞尔达传说与过去的联系”。

而且我遇到了以下问题,游戏世界是一个 BufferedImage,我 subImage() 是玩家当前位置所需的部分。游戏可以运行,但使用了 80% / 110% 的 CPU。一份资料显示,罪魁祸首是图像的绘制。

所以我想我把背景放在一个单独的 JPanel 中,与 Player、敌人等 JPanel 分开。将它们相互叠加(JLayeredPane)并减少重新绘制背景面板的频率。

但是我该如何做到这一点,我如何告诉 swing 每秒绘制一个面板 x 次和其他 y 次?如果您有更好的优化方法,请告诉我。

这是我目前所拥有的:

谢谢你。

0 投票
1 回答
451 浏览

.net - 如何在树视图之外绘制树视图节点 +/- 按钮?

ButtonRenderer类类似,我希望能够将使用的 +/- 按钮TreeViewNodes完全独立地绘制到 a 的任何实例上TreeView。似乎没有一种ControlPaint方法可以做到这一点,并且绘制一个 Button 看起来不正确。从哪里可以获得树视图节点的绘图代码?

0 投票
1 回答
128 浏览

c# - 我应该重复使用点和矩形还是创建新的?

在像绘画事件这样频繁调用的方法中,重用点和矩形对象(用于指定位置和边界)是否更有效,或者我应该创建新对象。

0 投票
3 回答
1008 浏览

delphi - 避免在嵌套控件上绘制

我正在编写一个工具栏样式的控件,并使用 ThemeServices 单元来绘制工具栏所需的背景。像这样:

然后我将子控件放到工具栏上,瞧——即时工具栏。除了时不时地我注意到嵌套(子)控件也不会重新绘制。所以我的控件绘制了它的背景,并且子控件消失了,直到你将鼠标移到它们上面。

一些编辑控件显示它们的客户区(无边框),其中一些完全消失了。

这主要发生在我将另一个应用程序的窗口放在工具栏上并将其移开时。

我一直认为这必须很容易治愈,也许我以某种方式阻止了绘画消息到达子控件,或者错过了覆盖但我一直无法弄清楚。

0 投票
2 回答
2029 浏览

c# - PropertyGrid PaintValue 问题:如何删除(并在外部绘制)标准矩形?

这可能是一个简单的问题,即使我还没有找到一个简单的解决方案:

我已经实现了我的自定义 UITypeEditor,其唯一目的是将 PaintValue 添加到布尔值。为了便于讨论,我们假设 PaintValue 将绘制选中或未选中的单选按钮。

问题一:

现在,问题来了:在所有绘制代码​​完成后,PaintValue 似乎会自动插入一个 20x13px 的矩形。自然,黑色矩形内的单选按钮很难看。我可以轻松地指示或覆盖这个矩形被绘制吗?

问题2:

在这方面,是否可以在 propertygrid 的本机外观之上进行绘制——这意味着我可以绘制一些东西以掩盖(部分)垂直分隔两个网格单元的黑线吗?这样做的目的是表明两个值是关联的,例如将宽度/高度约束到纵横比。

任何答案都非常感谢。