问题标签 [paintcomponent]

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 回答
688 浏览

java - 奇怪的图形错误:组件 A 的副本被绘制在组件 B 上。帮助!(爪哇)

我制作了一个简单的绘画程序,您可以在其中使用画笔工具绘制一些不同的颜色并擦除(只需涂成白色)。

它工作正常,但我有一个非常奇怪的图形错误,它导致工具面板和最后一个鼠标悬停的颜色/工具图标被绘制在绘图面板的顶部。

实现:框架包含两个JPanel 扩展:一个ToolPanel 和一个DrawPanel。ToolPanel 包含两个 JPanel,它们分别保存颜色按钮和工具按钮。按钮是 JComponent 的扩展。

链接到屏幕截图(我不允许明显地发布图片):

在此处输入图像描述

注意:第二个“假”工具面板中的按钮不是可以点击的实际按钮,我可以在上面绘画。如果我在左角的“假”颜色按钮上绘画,当我将鼠标悬停在新颜色上并用鼠标进入绘图面板时,它将再次重新绘画。

注 2:我曾经有一个 JMenuBar,它也画在绘图板上。每次在窗口(不仅仅是面板)失去焦点后,每次将鼠标悬停在绘图面板上时都会重新绘制它。

一些代码:(我知道工具选择实现不是最好的:P)

DrawPanel 的paintComponent 方法:

如果我遗漏了任何相关信息或代码,请告诉我。

假设:我没有在 DrawPanels paintComponent-method 中调用 super.paintComponent,也许这会导致一些问题?我没有这样做的原因是,如果我这样做,它将一直重新绘制背景,因此只有我最后绘制的点可见。不确定超级调用是否真的解决了问题,或者假面板是否也被背景覆盖。也许我需要以其他方式解决这个问题?或者是别的什么?

谢谢!

0 投票
4 回答
57175 浏览

java - JPanel 图形清除和重绘?

我有JPanel一个paintComponent()功能。我会调用一次,然后当用户单击不同的 时JButton,我会设置一些标志并想再次调用此函数,因为在设置标志后它会做一些稍微不同的事情。

所以这就是我想知道的:我如何清除现有的东西paintComponent?重绘,我只是paintComponent再打电话吗?

目前我正在尝试以下方法:

在油漆组件中,我执行以下操作:

但是通过测试,似乎我正在做的事情有问题。

谢谢你的帮助。

0 投票
1 回答
304 浏览

java - JButton 自定义问题

我需要一些有关自定义 JButton 的帮助。

我正在使用以下扩展方法来执行此操作......我需要为按钮添加背景颜色,并且我需要在按钮的两个位置(左上和中心)放置两个不同的文本

我的代码不能同时支持这两种情况(颜色和文本位置)。要么我能够找到文本,要么我能够获得 BG 颜色。在当前代码中,我得到了 BG 颜色,但没有出现文本

0 投票
3 回答
27417 浏览

java - 在 Java 中绘制像素图像

哪种方法是用java创建像素图像的最佳方法。说,我想创建一个尺寸为 200x200 的像素图像,总共 40.000 像素。如何从随机颜色创建像素并将其渲染到 JFrame 上的给定位置。

我试图创建一个只创建像素的自己的组件,但如果我使用 for 循环创建这样的像素 250.000 次并将每个实例添加到 JPanels 布局中,这似乎不是很高效。

0 投票
1 回答
1105 浏览

java - 工具提示文本擦除Java中的面板绘图

我有一个JPanel使用方法在其上执行一些绘图paintComponent,然后当用户单击在其JPanel上绘制(或任何绘图)的字符串时,当用户将鼠标移到JPanel它上面时,它会在JPanel.

1)问题是,当工具提示出现在绘制的字符串上时,它会擦除​​它,但是这个工具提示文本对我在paintComponent方法中执行的绘图部分没有擦除效果。我无法理解为什么会这样。

2)而且当我在点击时绘制字符串然后最小化并恢复我的应用程序时,我绘制的字符串消失了。

希望你们都明白我的意思。

这是代码:

提前谢谢....

0 投票
2 回答
560 浏览

java - 我将如何让我的 JFrame 的绘画自动更新?

目前,我有一个JFrame包含一个JPanel. 这JPanel是我的程序的油漆。绘画意味着我所有的Graphics g.drawString 东西。现在,它只在用户与 交互时更新显示,但我希望它在不使用 while 循环(过多的 CPU 使用率)的情况JFrame下不断更新 ( ) 本身。repaint()

有谁知道我怎么能做到这一点?

0 投票
2 回答
695 浏览

java - 如何不重绘 JFrame?只画

我需要简单程序的帮助。我想,当我点击程序标记它。我想看看我过去的动作。就像画中的铅笔。

类 Test.java

类图面板

感谢帮助。

0 投票
2 回答
6829 浏览

java - Swing - 未调用paintComponent方法

我只是实现了继承JPanel的类,如下所示

Orpanel 类正在加载图像并调整它自己的大小。

这是问题。

调用 JFrame 的 setContentpane(Orpanel 的实例)使其工作正常,但是当我将 Orpanel 附加到 JFrame 调用 add() 方法而不是 setContentpane 时(我知道 setcontentpane 并不意味着附加......无论如何),它不起作用。

终于弄清楚当我使用 add() 方法时,添加到 JFrame 的组件不会调用 paintComponent() 方法。即使我手动调用 repaint() 方法,仍然不调用 paintComponent() 方法。

我错过了什么?任何帮助将不胜感激!

提前谢谢。贾永新。


我添加了额外的代码。

如果将 setContentpane() 方法替换为 getContentpane().add(),仍然不起作用。不要混淆。Owpanel 和 Orpanel 是一样的 :)

0 投票
2 回答
580 浏览

java - 简单的自定义 Swing JComponent 总是扁平的

我只是在玩 Swing,并且正在开发一个非常简单的 Swing 组件。我有一个从JComponentclass 继承的组件,它的 UI 继承自ComponentUI. 该paint()方法如下所示:

但是完全不可能得到r.height大于 1 的另一个值。组件是给定的宽度,但高度总是只有一个点。有没有其他人使用过类似的组件?不幸的是,没有任何简单的教程。所有教程都是难以理解的复杂(或过时)。

似乎布局管理器将此组件的大小始终调整为 1 高度(无论最小值)。

0 投票
4 回答
1950 浏览

java - 如何在垂直线上移动 JApplet 内的图像?

我在 JApplet 中显示了一个图像(球),现在我希望图像以垂直方式(上下)移动。问题是我不知道该怎么做。

有人可以对此事有所了解吗?