我有一个JPanel,在其上执行自定义绘画,可能需要15秒.

问题是当我在绘制JPanel的同时点击一个菜单时,绘画正在菜单上完成,并且选项不可见. (见图中扭曲的文字)

如果我在绘画完成后单击菜单,则没有不需要的行为,但是当我将鼠标指针移动到不同的菜单上时,同样的事情再次发生.

例如,在完成绘画后,如果单击“应用程序”,则不会出现副作用,但是当我将鼠标指针移动到“帮助”时,会显示前面描述的行为.

如何避免这种情况?

我在一个单独的线程中在paintComponent()方法之外执行绘制:

public class RandomIFSPanel extends JPanel {

RandomIFSPanelRenderer randomIFSPanelRenderer;

@Override

public void paintComponent(Graphics graphics) {

try {

randomIFSPanelRenderer.stop();

} catch (Exception e) {

}

randomIFSPanelRenderer = new RandomIFSPanelRenderer();

randomIFSPanelRenderer.start();

}

class RandomIFSPanelRenderer extends Thread {

@Override

public void run() {

for (int i = 0; i < numberOfPoints; i++) {

Graphics g=getGraphics();

g.setColor(Color.WHITE);

g.drawLine........

}

}

}

}

解决方法:

除了有关Event Dispatch Thread的内容之外:

>您是直接调用paintComponent()方法吗?调用repaint()更“安全”.

>调用paintComponent()时,是否可以缓冲图像,绘制图像然后在面板上进行设置?

标签:java,swing

来源: https://codeday.me/bug/20190901/1781169.html

java jpanel隐藏_java – 绘制JPanel隐藏菜单相关推荐

  1. java 覆盖和隐藏_Java覆盖和隐藏2

    先上题,题目如下,请分析输出结果: public class MainClass { public static void main(String[] args) { Fu f = new Zi(); ...

  2. java jpanel 半透明_java – 透明JPanel

    我想创建一个半透明的JPanel.我通过简单地使用颜色构造函数的RGBA值来完成它,但问题是当我使用事件处理不正确地唤醒时.我的要求是一个半透明的Jpanel,当鼠标进入它的边框,这个面板变得可见,如 ...

  3. java线程死锁_Java并发:隐藏线程死锁

    java线程死锁 大多数Java程序员熟悉Java线程死锁概念. 它本质上涉及2个线程,它们彼此永远等待. 这种情况通常是平面(同步)或ReentrantLock(读或写)锁排序问题的结果. Foun ...

  4. java excel插入列_Java 插入、隐藏/显示、删除Excel行或列

    概述 操作Excel工作表时,对表格中的行或列数据可执行,包括插入.隐藏.显示.删除等在内的多种操作需求,本文将通过Java代码示例演示每种操作的具体实现方法.文中方法使用了Java Excel类库( ...

  5. java五子棋棋盘_java绘制五子棋棋盘代码示例

    本篇文章小编给大家分享一下java绘制五子棋棋盘代码示例,文章代码介绍的很详细,小编觉得挺不错的,现在分享给大家供大家参考,有需要的小伙伴们可以来看看. 代码如下: import javax.imag ...

  6. java 画星星_Java——绘制五角星

    Java2D支持通过GeneralPath实现绘制任意的几何形状. 步骤:1)实例化GeneralPath对象 2)调用moveTo()方法锚地开始点坐标 3)调用lineTo()或curveTo() ...

  7. java画虚线_Java绘制虚线

    Java绘制虚线 (2013-03-29 17:07:14) 标签: 绘图 虚线 it DashStroke.java ----------------- import java.awt.*; imp ...

  8. java水平线代码_java 绘制直线,跪求源代码???

    在几何中,直线是向两端无限延伸的,本实例所说的绘制直线,实际上是绘制直线上两点之间的线段,线段在实际生产和生活中经常使用.运行程序,将在窗体上绘制线段,效果如图1.1所示.图... 在几何中,直线是向 ...

  9. java swing 右键_java swing制作右键菜单

    java swing中如何实现右键菜单呢?    直接上代码: /*** java * 设置弹出菜单 * @param qrResultLabel */ private void setPopupMe ...

最新文章

  1. 【洛谷 1991】 无线通讯网
  2. oracle事务提交前更新机制,Oracle 事务机制 批量添加,修改,更新
  3. 修改npm全局安装模式的路径
  4. 静态函数 静态变量和常量
  5. 当音乐博士开始写代码...
  6. Mozilla在Thunderbird 60.3中的修补了多个安全漏洞
  7. Codeforces Round #521 (Div. 3): F. Pictures with Kittens(DP+单调队列)
  8. JavaScript编码风格指南(中文版)
  9. PCIE5.0英文版协议
  10. 浅谈 MyBatis 缓存
  11. 程序员有文化,多可怕!
  12. 用Visual C#.NET编写服务器日期控件
  13. 将excel表格嵌入html,excel中embed的使用
  14. ai绘画到底有大强?我开发了一款ai绘画(来看看)
  15. 万物心选—新生代妈妈创业的优质之选
  16. Jenkin 配置 Gerrit Trigger
  17. 计算机访学面试,国家公派访问学者面试经典问题总结
  18. 迷宫问题超详解(栈实现)
  19. 信号与系统(13)- 傅里叶变换的性质
  20. JavaScript代码压缩工具UglifyJS和Google Closure Compiler的基本用法

热门文章

  1. jQuery基础教程之如何注册以及触发自定义事件
  2. 算法高级(41)-推荐算法实现
  3. IntelliJ Idea 常用12款插件(提高开发效率),附优秀主题插件
  4. Linux 使用root用户登录系统,并查看当前的路径。 查看当前目录下面的所有文件(包括隐藏文件)。 在当前目录下,查看根目录中的目录结构。
  5. 网站调用百度地图 根据地址查询经纬度
  6. jetbrick-template 和其他模板的性能测试比较
  7. C#控件及常用属性整理
  8. MonoRail学习笔记十八:在VM中可以使用哪些系统变量
  9. 网页中Flash播放器常用参数设置(转)
  10. 软件测试 学习之路 CSS (二)