首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

有没有办法在使用super.paint(g)之后重新绘制图形?

在使用super.paint(g)之后重新绘制图形的方法是使用Java中的repaint()方法。repaint()方法是Component类中的一个方法,用于触发组件的重新绘制操作。

当我们调用super.paint(g)方法时,会先执行父类的绘制操作,然后再执行子类的绘制操作。因此,如果我们希望在父类绘制完毕后重新绘制图形,可以在super.paint(g)方法后调用repaint()方法。

调用repaint()方法会导致系统自动调用子类的paint()方法进行重新绘制。在paint()方法中,可以通过Graphics对象g进行图形的绘制操作。

下面是一个示例代码:

代码语言:txt
复制
import java.awt.*;
import javax.swing.*;

public class MyPanel extends JPanel {
    
    public MyPanel() {
        super();
    }
    
    @Override
    protected void paintComponent(Graphics g) {
        super.paintComponent(g);
        // 绘制图形
        g.drawLine(50, 50, 200, 200);
    }
    
    public void redraw() {
        repaint();  // 重新绘制图形
    }
    
    public static void main(String[] args) {
        JFrame frame = new JFrame("Redraw Example");
        frame.setSize(300, 300);
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        
        MyPanel panel = new MyPanel();
        frame.add(panel);
        frame.setVisible(true);
        
        // 延时2秒后重新绘制图形
        try {
            Thread.sleep(2000);
        } catch (InterruptedException e) {
            e.printStackTrace();
        }
        
        panel.redraw();
    }
}

上述代码中,我们创建了一个继承自JPanel的自定义面板MyPanel,并重写了其paintComponent()方法进行图形的绘制。在main()方法中,创建了一个JFrame窗口,并将自定义面板添加到窗口中。通过调用panel.redraw()方法,延时2秒后重新绘制图形。

推荐的腾讯云相关产品:腾讯云云服务器(CVM)和云函数(SCF)。

腾讯云云服务器(CVM)是一种灵活可扩展的云计算服务,提供了快速创建、部署和扩展的虚拟机实例。您可以使用CVM来搭建自己的服务器环境,实现应用程序的部署和运行。

腾讯云云函数(SCF)是事件驱动的无服务器计算服务,可以帮助您构建和运行无需管理服务器的应用程序。通过SCF,您可以编写函数代码,根据触发的事件自动执行代码逻辑,无需关注服务器的运维和扩展。

更多关于腾讯云云服务器(CVM)的信息,请访问:腾讯云云服务器(CVM)

更多关于腾讯云云函数(SCF)的信息,请访问:腾讯云云函数(SCF)

相关搜索:有没有办法在一个动作之后重新执行postconstract init方法?有没有办法使用Python在一个图上绘制多个面有没有办法在Flutter中重新绘制屏幕或导航到AppLifecycleState.paused上的不同屏幕在java中,有没有办法在对集合使用stream之后返回相同的集合类型?在去序列化和重新序列化之后,有没有办法保留不需要的json字段?有没有办法在appcelerator中使用x,y坐标数组来绘制折线图?有没有办法在使用kivy的Button Release上重新启动整个应用程序?有没有办法在WHERE之后的WHEN子句中使用不同的运算符/语句使用安卓导航组件时,有没有办法防止在bottomNavigation中重新创建碎片有没有办法让我可以循环这个程序,在执行循环的一部分之后重新开始有没有办法在OSB11g中使用MFL读取数据不一致的文件有没有什么办法可以让我在android中修改我的代码来重新使用图标呢?有没有办法使用全息视图在动态地图中重新定位滑块/下拉框?有没有办法在使用GLFW按下一个键之后只处理一个输入事件?有没有办法在不使用图形对象的情况下测量适合打印区域的字符串数量?有没有办法在不使用window.location.reload()和ngOnInit()的情况下重新加载我的应用?在使用Gremlin/Tinkerpop3的fluent api之后,有没有办法以文本而不是步骤列表的形式打印查询?有没有办法用python在dash上修改日间股票图,这样16:00之后到9:30之前的时间就不会被绘制出来?我是否需要使用OpenGL在逐个像素级别进行绘制(Python)。有没有办法在不使用代码库的情况下做这样的事情?
相关搜索:
页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

双缓冲原理Awt和Swing中实现消除闪烁方法总结

1)、JFC结构 JFC是Java的基础类,是Java Foundation Classes的缩写形式,封装了一组用于构建图形用户界面的组件和特性。...()方法刷新则会造成屏幕刚清空,又继续重新调用paint()方法往窗体上绘制,则就造成闪烁问题!...,不必在从底层绘制      paint(gre); //将接下来的图片加载到窗体画布上去,才能考到每次画的效果   g.drawImage(image, 0, 0, null...中继承而来的,而JFrame中却重写了update()方法如下: public void update(Graphics g) { paint(g); } 对比之后会发现直接调用了...但是我们用JFrame编程并且重新update()实现双缓冲后,窗体一样狂闪不停!原因为何? 下面引用一张图来说明: ?

2.2K20
  • Java游戏编程不完全详解-2(1万6千字吐血推荐)

    显示全屏幕之后屏幕中绘制文字! Graphics类是图形上下文的抽象基类,它允许应用程序组件,以及闭屏图像上进行绘制。...另外,Graphics对象paint方法中使用,该对象提供所有功能:绘制文本、线条、矩形、椭圆、多边形、图形等。...该方法将paint转发给任意一个此容器组件的轻量级组件,如果重新实现此 方法,那么JVM应该调用super.paint(g)方法,从而正确呈现轻量级组件。...这是因为我们不断刷新屏幕,这样的结果是我们擦除背景,然后重新绘制它。这样的结果会有时候出现闪烁,有时候不出现闪烁现象。这个类似于,我们屏幕使用笔画图,然后用户会看见怎么画图的全过程。...实际开发中,双缓存、分页和等待显示器重新刷新都是使用该类来实现。总之一句话,该类帮助我们完成这些物理上的动作。

    1.6K30

    Python也能一键绘制了,而且样式更多..

    目前课程的主要方向是 科研、统计、地理相关的学术性图形绘制方法,后续也会增加商务插图、机器学等、数据分析等方面的课程。课程免费新增,这点绝对良心!...sns.pairplot-Python版对角矩阵系列统计图绘制~ 上篇推文介绍到了使用R语言GGally包中ggpairs()函数绘制了对角矩阵系列图形,详情可看:不是?!...之后就有网友咨询有没有Python版本的?...今天就给大家介绍一下Python绘制对角矩阵系列图形的方法: Seaborn.pairplot() 函数,一键绘制对角矩阵图形 Python语言中,可以使用统计图形绘制工具Seaborn库中的 pairplot...()函数,快速绘制对角矩阵图形,下面给出几个绘制案例: 1.案例一: penguins = sns.load_dataset("penguins") sns.pairplot(penguins) sns.pairplot

    16310

    Canvas 性能优化:脏矩形渲染

    使用 Canvas 做图形编辑器时,我们需要自己维护自己的图形树,来保存图形的信息,并定义元素之间的关系。...那么,有没有什么办法来优化一下?有,脏矩形渲染。 画布该如何更新? 这里我们假设这么一个场景,画布上绘制了随机位置大量的绿球,然后顶层再绘制一个红球。...一种容易想到的方案是 全量更新,鼠标移动的时候,将所有的球重新绘制一遍。...脏矩形渲染原理 讲解之前,我们先明白几个概念。 脏矩形:改变某个图形的物理信息后,需要重新渲染的矩形区域,通常为目标图形的当前帧和下一帧组成的包围盒。 包围盒:包围图形的最小矩形。...使用脏矩形渲染的情况下,除了一开始初始化必要的全部渲染外,之后 fps 能稳定在满帧数 59.4 毫无波动(不同的显示器的满 FPS 不同)。 后来我改成 30000 个,结果还是稳定 59.4。

    1.3K10

    【愚公系列】2024年01月 GDI+绘图专题(裁剪、变换、重绘)

    接着使用 Graphics.SetClip 方法将该区域设置为裁剪区域,只有该区域内的图形才会被绘制。在此之后绘制了一个椭圆,它只被绘制了矩形的左半部分区域内。...二、重绘 1.Invalidate Invalidate是Graphics中使用的方法之一,它用于指示Graphics对象无效并需要重新绘制。...当调用该方法时,Graphics对象将被标记为需要重新绘制屏幕更新之前将使用新的绘图数据更新。使用Invalidate方法是屏幕上显示动态图形的一种常见方法。...为了避免出现图形闪烁的情况,我们在窗体的Load事件中设置了双缓冲。这样可以绘制使用一个缓存图像,等绘制完成后再将整个图像一次性绘制到屏幕上,从而消除了图形闪烁的问题。...旋转后的Graphics对象上进行绘制操作,例如:g.DrawLine(pen, 0, 0, 100, 0); 这里使用DrawLine方法旋转后的Graphics对象上绘制一条线段,起点坐标为

    55411

    YourBatman用趣味代码雨祝你:端午安康

    正文 Java大都用来作为服务器开发,殊不知它也可以用作客户端开发,并且能做出“漂亮的UI”,比如Javaer最最最常用的IDE:IntelliJ IDEA,以及Eclipse,它们都是用Java语言绘制而成的...Java图形化界面编程 首先需要明确:Java开发UI的技术,是很少使用的技术,所以这里只稍微介绍一下。...GUI(Graphical User Interface):图形用户界面,是指采用图形方式显示的计算机操作用户界面 AWT是通过调用操作系统的native方法实现的,所以Windows系统上的AWT窗口就是...{ //必须设置,否则setBackground(Color.BLACK); 设置背景色无效 super.paint(g); Graphics2D g2...互联网领域大环境不好的情况下,程序员越来越卷,下班时间越来越晚,赚钱的同时也要保重身体,YourBatman在此祝你端午安康。

    83951

    一文 get 入门 canvas 的最佳路径

    使用路径绘制图形需要一些额外的步骤。 首先,你需要创建路径起始点 然后你使用画图命令去画出路径。 之后你把路径封闭 一旦路径生成,你就能通过描边或填充路径区域来渲染图形。...以上这些步骤会用到一些 API: beginPath() 新建一条路径,生成之后图形绘制命令被指向到路径上生成路径。 closePath() 闭合路径之后图形绘制命令又重新指向到上下文中。...详解绘制过程 这里详细解答一下绘制的过程: 第一步,生成路径,调用 beginPath,本质上路径是有很多子路径所构成的,这些子路径全部一个列表里面,所有的子路径(线、弧)构成图形。...而每次调用这个方法之后,列表都会被重置,然后就可以绘制新的图形。...有没有其他方案了,游戏界有一个普遍使用的方案——包围盒,什么是包围盒呢?我们以上面的图形举例,外面画的红线框就是这个多边形的包围盒。

    91461

    一个有趣的例子带你入门canvas

    使用路径绘制图形需要一些额外的步骤。 首先,你需要创建路径起始点 然后你使用画图命令去画出路径。 之后你把路径封闭 一旦路径生成,你就能通过描边或填充路径区域来渲染图形。...以上这些步骤会用到一些 API: beginPath() 新建一条路径,生成之后图形绘制命令被指向到路径上生成路径。 closePath() 闭合路径之后图形绘制命令又重新指向到上下文中。...详解绘制过程 这里详细解答一下绘制的过程: 第一步,生成路径,调用 beginPath,本质上路径是有很多子路径所构成的,这些子路径全部一个列表里面,所有的子路径(线、弧)构成图形。...而每次调用这个方法之后,列表都会被重置,然后就可以绘制新的图形。...有没有其他方案了,游戏界有一个普遍使用的方案——包围盒,什么是包围盒呢?我们以上面的图形举例,外面画的红线框就是这个多边形的包围盒。

    87910

    俄罗斯方块

    , g_NextBlock; 在这里还定义了两个方块,g_CurBlock方块和g_NextBlock方块 g_CurBlock方块需要绘制游戏区,g_NextBlock方块绘制等待区,整个游戏就是不断绘制这两个方块...方块信息 第二部分:干的事就是将游戏区的图形显示出一部分来,因为初始时图形游戏区上面,不显示 ?...DrawBlock(g_CurBlock, CLEAR); g_CurBlock.x++; DrawBlock(g_CurBlock); } } 左移就是检查左移之后图形是否符合规定...(CheckBlock(tmp)) { dx = 2; Rotate(dx); return; } } 旋转也是先判断旋转之后图形是否合理,也就是CheckBlock()函数检查旋转之后的方块...dx之后将下一个方向的方块绘制出来,简简单单~ 04 元素优化 为了让游戏更为人性化,有必要添加一些特殊的功能,例如退出游戏,暂停,重新开始,我没有去实现文件读写功能,因为代码本身就很多了,500行,

    1.5K20

    机器学习打造全新3D图形技术

    因为无法修改、编辑这些数据,艺术家就没有办法使用,只能捕捉成什么样就是什么样,这是它的另一个缺点。...接下来,通过我们传统计算机图形学里面的三个大领域中所做的一些研究工作来展示如何通过数据驱动的方法来处理图形学问题的,包括:几何造型、真实感绘制和计算机动画。 首先是,几何造型和几何处理。...再来看看我们如何把数据驱动的方法用于真实感绘制的。真实感绘制可以说是计算机图形学中一个最核心的问题。...完成之后,我们发现我们第一次实现了实时的全局光照效果。我们绘制的这个卧室场景被很多离线的绘制程序设立为一个标杆。...之后,我们还把这一技术用于实际拍摄的光照环境中,同样用神经网络的方法对简单的图像进行学习之后再做重新打光,可以叠加一个新的光照效果。 最后我们来看看,如何在计算机的动画中应用数据驱动的方法。

    1.1K50
    领券