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

当我使用setBounds时,Jcomponents的重绘方法会绘制一个白色矩形

当使用setBounds方法时,JComponent的重绘方法会绘制一个白色矩形。setBounds方法是用于设置组件的位置和大小的方法。它接受四个参数,分别是组件的x坐标、y坐标、宽度和高度。

当调用setBounds方法后,JComponent会根据设置的位置和大小重新计算并更新自己的边界框。在重绘过程中,JComponent会先清除原来的绘制内容,然后根据新的边界框绘制一个白色矩形作为背景。

这个行为是JComponent的默认实现,旨在提供一个简单的视觉反馈,以便开发人员可以清楚地看到组件的位置和大小变化。但是,这个白色矩形并不是组件的实际内容,只是一个背景框。

在实际开发中,如果需要自定义组件的绘制内容,可以通过重写JComponent的paintComponent方法来实现。在重写的方法中,可以使用绘图相关的API来绘制自定义的图形、文本等内容。

关于JComponent的重绘方法和自定义绘制,可以参考腾讯云的相关文档和示例代码:

腾讯云还提供了一些与Java开发相关的云产品,例如云服务器、云数据库等,可以根据具体需求选择适合的产品进行开发和部署。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

Android中的绘图

这种方法会通知UI线程重绘,使View重新调用onDraw()方法,实现刷新屏幕。这样写看起来代码非常简洁漂亮,但是同时也存在一个很大的问题。...举个例子,比如程序先进入Activity1中,使用invalidate()方法来重绘;然后我跳到了Activity2,这时候Activity1已经finash()掉,可是Activity1中的invalidate...总结起来说即,重绘操作在UI线程中是被动调用的,所以不安全。 解决方案,在调用postInvalidate()方法后通知UI线程重绘屏幕。...useCenter:指定是否把起始的半径给画上,若为false则只画弧而不画起始的半径。 ​示例1.3​ 在屏幕上显示一个矩形,当我们按键盘方向键时控制其中的正方形进行移动。...示例1.8​:实现旋转指定图片的功能(让图片绕着某一方向不停地旋转),某一时刻程序的运行效果如图1.1.8所示。

4800
  • Android自定义实现按周签到打卡功能

    2、连续签到记录在第8天开始时将清零重新计算。 3、如果中断签到,连续签到记录也将清零。...mTextDayPaint; /** * 是否执行动画 */ private boolean isAnimation = false; /** * 记录重绘次数...,获取该点的意义是为了方便画矩形左上的Y位置 mLeftY = mCenterY - (mCompletedLineHeight / 2); //获取右下方Y的位置,获取该点的意义是为了方便画矩形右下的...mCenterY + CalcUtils.dp2px(getContext(), 30f), mTextDayPaint); } //记录重绘次数...* 一周签到规则: * 1、连续签到7天,即可额外获得15积分奖励 * 2、连续签到记录在第8天开始时将清零重新计算 * 3、如果中断签到,连续签到记录也将清零 * * 注:可以显示签到的动画

    1.8K50

    Android 开发艺术探索笔记一

    工作原理是:通过computeScroll让view不断进行重绘,根据重绘的时间间隔,得出view的当前滑动位置,根据位置通过scrollTo完成滑动,多次小幅度滑动就组成了弹性滑动了。...中,最终触发performTraversals方法,进行开始View树重绘流程(只绘制需要重绘的视图)。...postInvalidate 这个方法与invalidate方法的作用是一样的,都是使View树重绘,但两者的使用条件不同,postInvalidate是在非UI线程中调用,invalidate则是在UI...而invalidate则是刷新当前View,使当前View进行重绘,不会进行测量、布局流程,因此如果View只需要重绘而不需要测量,布局的时候,使用invalidate方法往往比requestLayout...setBounds(@NonNull Rect bounds); protected void onBoundsChange(Rect bounds) setBounds 设置绘制区域矩形边界,draw

    94410

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

    重绘(Repainting)指的是根据新的布局或者样式信息,重新绘制图像或元素的外观。当元素的位置、大小、样式发生变化时,需要重新绘制来更新外观。...二、重绘 1.Invalidate Invalidate是在Graphics中使用的方法之一,它用于指示Graphics对象无效并需要重新绘制。...调用Invalidate方法后,必须等待下一次屏幕更新才能看到更新后的图形。 与之相对应的方法是Refresh方法。Refresh方法会立即重绘Graphics对象,而不是等待下一次屏幕更新。...以下是一个简单的案例,演示如何在WinForm中使用Invalidate方法进行GDI+绘图的重绘: //在窗体中定义一个标志位,用于指示是否需要重新绘制图形 private bool isNeedToRedraw...在绘制时,由于已经对图形进行了缩放,因此绘制出的直线和矩形大小与原来的大小不同。

    69311

    自定义View实战--实现一个清新美观的加载按钮

    上面的显示的是两种形状,一个是圆角矩形,另外一个就是圆。两个形态尺寸区别是,高相同,宽度不一致。 我们再进一步分析形态 1。 ? 形态 1 可以看成是左右两个半圆和中间一个矩形。...当进行动画时,中间的矩形部分不停地缩小,当它缩小为 0 时,形态 1 就转变成了形态 2。 上面的能够说明什么呢?...,当从形态 1 到 形态 2 转变的过程,肯定是 rectWidth 数值变化的过程,而对于其它数值是不变的,所以重绘的时候 LoadButton 能够很轻松地处理这种情况。...Inital 状态,不同的还有它的 rectwidth 每次重绘时会变小,最终会由 Initial 的形态 1 过渡到 Loading 状态下的形态 2。...,通过不断改变属性 rectWidth 的值来进行重绘,而对于绘制这一方面,文章前面部分有说过 LoadButton 通过以中心坐标为参考,以 mRectWidth 为变量建立了一个 Path 来绘制轮廓

    60420

    【Java AWT 图形界面编程】Canvas 组件中使用 Graphics 绘图 ① ( AWT 绘图线程 | Component 绘图函数 )

    一、AWT 绘图线程 在 AWT 绘图程序中 , 有一个专门的线程用于绘制界面的线程 , AWT 绘制线程 ; AWT 绘制线程 , 默认处于 等待状态 ; 当组件 第一次显示时 , 会 调用 paint...绘制线程 中 调用 repaint() 函数 , 重绘组件 ; 在 repaint() 函数 中 , 先将组件进行隐藏 , 然后再 调用 update(Graphics g) 函数刷新组件 ; 在调用...* 当组件的内容需要绘制时调用此方法;例如,当组件第一次显示或损坏,需要维修。 * Graphics参数中的剪辑矩形被设置为需要绘制的区域。...* * Component的update方法调用该组件的paint方法来重绘该组件。 * 这个方法通常被子类覆盖,这些子类需要做额外的工作来响应重新绘制的调用。...* * 注意:有关AWT和Swing使用的绘制机制的更多信息, * 包括如何编写最有效的绘制代码的信息,请参见AWT和Swing中的绘制。

    77730

    【Android 性能优化】布局渲染优化 ( 过渡绘制 | 自定义控件过渡绘制 | 布局文件层次深 | GPU 过渡绘制调试工具 | 背景过度绘制 )

    但还是会占用绘制时间 , 这样就造成了时间上的浪费 , 甚至导致整个渲染过程超过 16 ms ; ② 过渡绘制的示例 : 打个比方 , 给墙刷大白 , 先刷一遍绿色的 , 再刷一遍蓝色的 , 最后再刷白色的...绘制了很多重叠的元素 ; 如绘制 Bitmap 后 , 又在该 Bitmap 上又绘制了一个矩形 , 这样矩形覆盖了 Bitmap , 这两个图像都要被 GPU 渲染 , 这样就增加了渲染时间 ; ②...打开过渡绘制调试工具 开发者选项中 , 有 “调试 GPU 过渡重绘” 选项 , 打开该选项 , 选择 “显示过渡绘制区域” , 即可查看过渡绘制情况 ; 选择 第二项 , “显示过渡绘制区域” ,..., 即可避免背景二次重绘 ; 时, 不设置主题背景, 避免过度重绘 --> null

    2.3K20

    【Flutter 组件集录】CupertinoActivityIndicator| 8月更文挑战

    在我心目中 CupertinoActivityIndicator 是一个 教科书 级别的组件,它融汇了非常多组件相关的知识要点,比如动画、绘制、State 生命周期回调的使用,是非常值得去学习、分析、...直到我看懂 CupertinoActivityIndicator 的源码,才对画板重绘有了全新的认知。这也为 《Flutter 绘制指南 - 妙笔生花》扫清了最后障碍。...画板可以通过一个 Listenable 对象触发重绘,而不会触发任何组件的构建。至于其更深层的实现原理,在 《Flutter 绘制探索》专栏中有详细的源码分析。...具体的绘制逻辑也很简单,就是遍历旋转绘制圆角矩形而已。 4....在同一片渲染区域内的一个节点重绘,会连带这片区域的所有渲染节点重绘。

    1K30

    【Fanvas技术解密】HTML5 canvas实现脏区重绘

    这相比整屏重绘,重绘的面积小了几十倍,由于canvas 2d使用的是CPU处理,那么相应地,CPU处理的像素个数就少了很多倍,顺理成章,动画的效率就会提高。...如果动画非常简单,没有使用“显示列表”,所有图案都是一层绘制的,那么“也许”绘制者,也就是开发者了,可能会知道蝴蝶的位置,然后手工指定重绘的区域。呃。。。...另外,提一下,这里其实还有一个难点,初始绘制时(x:0,y:0,width:100,height:50),这个矩形是如何计算得到的呢?...其实,canvas并没有真正的脏区重绘接口,不过有一个clip,这个一般用于实现遮罩,不过也可以取巧的用来实现脏区重绘。经笔者测试,简单使用clip虽然性能优化不是太明显,但还是有20%的提升的。...最后来看看实际的效果(第一张是没有使用脏区重绘,第二张使用脏区重绘): ? ? image.png ?

    2.1K20

    Android 深入(一)- 自定义View之BottomTitleImageView

    通过本文你可以了解到自定义View的知识,同时你可以学会如何写一个属于自己的View。同时希望能够通过这个例子重新学习下自定义View的知识。...Android 开发到一定程度的时候,可以独立开发一款App,一些基本的知识都有使用。...这时候必须进行自我提高,深入的研究下Android的各个方面,不然也只能停留在初级程序员的层次,只能是一个码农啦!...自定义View是我们需要掌握的基本知识,在开发中一些需求使用系统内置的View不好实现,我们经常会自定义我们自己的View,同时在面试中经常被问到。...layout:设置视图在屏幕中显示的位置。 draw:绘制视图。其中onDraw()方法会花费大量时间,布局变化会重绘视图,所以在onDraw()中要避免对象分配。

    50540

    简单的canvas绘图

    anvas 本身并没有绘制能力(它仅仅是图形的容器),是一块无色透明的区域,就像一个可以设置宽度高度没有背景的DIV一样,你必须使用JavaScript脚本来完成在其中的绘图任务。...("myCanvas"); var pen=c.getContext("2d"); 1.绘制一个白色的矩形: pen.fillStyle = "#fff";·// 绘制一个白色填充的矩形 pen.fillRect...(0,0,30,20); pen.strokeRect(30,30,20,20); // 绘制一个白色矩形(只有边框) fillStyle 属性设置或返回用于填充绘画的颜色、渐变或图案,默认设置是#000000...因此, 为了实现动画,我们需要一些可以定时执行重绘的方法。有两种方法可以实现这样的动画操控。...首先可以通过 setInterval 和 setTimeout 方法来控制在设定的时间点上执行重绘。

    2.3K20

    图像处理程序框架—MFC相关知识点

    CDC对象使用的属性设备上下文 二者在CDC对象创建时指向相同的设备上下文。...OnPaint是WM_PAINT消息引发的重绘消息处理函数,在OnPaint中会调用OnDraw来进行绘图。...OnPaint中只是当窗口无效时重绘不会保留CClientDC绘制的内容。 ...OnDraw 重写:  通过调用您提供的文档成员函数获取数据。  通过调用框架传递给 OnDraw 的设备上下文对象的成员函数来显示数据。  当文档的数据以某种方式更改后,必须重绘视图以反映该更改。...当没有添加WM_PAINT消息处理时,窗口重绘时,由OnDraw来进行消息响应...当添加WM_PAINT消息处理时,窗口重绘时,WM_PAINT消息被投递,由OnPaint来进行消息响应.这时就不能隐式调用

    1.5K20

    Android实现 刮刮乐效果

    ,设置绘制方式为DST_OUT,对view进行重绘,当达到一定阈值的时候,不在绘制图片只绘制中奖信息。...然后我们绘制一个圆角矩形,在矩形的中间显示中奖信息: ? 初始化显示文字的矩形框,将文字绘制在中间位置: ? 此时运行,显示的效果为上图我们看到的直接显示中奖信息。...四、‘刮’实现       刮实现主要对用户手势进行监听,通过path.moveto(),进行轨迹的绘制,完成后通过调用invalidate()方法进行重绘。...当我们抬起的时候,需要判断用户是否刮开了较大区域(自己设定的阈值),如果是的,就直接显示出中奖信息,否则用户继续刮。...通过添加boolean标志位,当为true的时候在onDraw()方法中只绘制中奖信息即可。通过postInvalidate()使之重绘。 ? 最终即实现刮刮乐效果。

    1.5K20

    Windows程序设计学习笔记(四)自绘控件与贴图的实现

    Windows系统提供大量的控件供我们使用,但是系统提供的控件样式都是统一的,不管什么东西看久了自然会厌烦,为了使界面更加美观,添加一些新的东西我们需要自己绘制控件。...HWND hwndItem; //控件句柄 HDC hDC; //绘制控件的设备上下文句柄 RECT rcItem; //控件项的矩形范围 DWORD itemData;...//程序为菜单项、列表项、组合框中的列表项指定的32值 } DRAWITEMSTRUCT; 对于列表框和组合框,在重绘时会发送一条消息:WM_MEASUREITEM,该消息用于设置列表项的大小信息。...// 贴图的方式,它规定了原图片颜色如何与目标控件颜色组合已形成最终的颜色 ); 对于第二步的操作并不是必要的,在贴图时我们可以使用同一个句柄作为原和目的句柄,但是当我们需要贴的图片过多,使用同一个句柄会造成客户区的闪烁...,同时WS_CLIPSIBLINGS风格指明在重绘子窗口时不重绘整个客户区 在WM_DRAWITEM消息中编写重绘的代码: LPDRAWITEMSTRUCT lpDis = (LPDRAWITEMSTRUCT

    1.4K20

    【玩转 GPU】Stable-Diffusion Inpaint小知识:Masked content的作用

    在这种约定下,黑色通常表示需要排除或去除的区域,白色则表示需要保留或处理的区域。这个原始概念在“Inpaint Upload”上,就需要理解为蒙版图白色区域是需要重绘的(而非保留不变的)区域。...、inpaint not masked绘制非蒙版内容,选择第一个就是只在蒙版区域重绘,另一种则相反(可以理解为将蒙版图中的0与1,黑与白互换),默认值是inpaint masked绘制蒙版内容 Masked...全图重绘是指在原图大小的基础下绘制蒙版区域,优点就是内容与原图融合的更好,缺点是不够细节;而蒙版重绘是指处理的时候将蒙版区域进行放大到原图的尺寸,画完之后再缩小放到原图的相应的位置,优点就是细节更好,缺点也是细节太多...,与原图融合的不够好 Only masked padding, pixels:当选择Only masked 仅重绘蒙版区域 模式时,我们可以通过此参数来调整放大区域的边界来控制重绘的精度。...总结 为什么以上四种模式左上角的图不一样,这是因为已经跑了一个Step,且seeds设置为-1,每次生成时的seeds都不一样的缘故。

    5.2K84

    【第3版emWin教程】第41章 emWin6.x窗口管理器基础知识(重要)

    回调函数中会有一个switch语句,它使用一个或多个case语句为不同消息定义不同的行为,其中重绘消息WM_PAINT是一个比较重要的消息。...窗口管理器不会自动重绘桌面窗口的区域,因为没有设置自动重绘,也就是说如果创建了另一个窗口然后将其删除,则删除的窗口仍然可见。...窗口的无效区域 对于每个窗口,窗口管理器只使用一个矩形来获取包含所有无效区域的最小矩形。例如,如果左上角的一小部分和右下角的一小部分变为无效,则整个窗口都是无效区。...使用无效化的原因 使用窗口无效化而非立即重绘每个窗口的优点是只需绘制窗口一次,即使其被无效化多次。...启用后,在绘制无效窗口前,窗口管理器会将所有绘制函数的输出重定向到不可见的后置缓冲,绘制最后一个无效窗口后,窗口管理器使后置缓冲可见。

    1.6K20

    LeaferJS,全新的 Canvas 渲染引擎

    搜索了一下调用方,发现两者的区别在于当前绘制类是否有 __complex,如果是复杂的,就走 __drawPathByData,否则就走 __drawFast。 那什么是复杂,什么是简单呢?...更新机制 前面的 __setAttr 方法触发时,就会调用 this.emitEvent(CHANGE) 发送一个事件。...使用下面这个例子来讲解会更容易理解一些: rect2 移动到了下方,虚线框就是要重绘的区域,在重绘之前先对这片区域进行 clip,然后 clear 清空这片区域。...接着对节点进行遍历,遍历后的结果是 circle1、rect2、circle2、rect3 是需要重绘的,就会调用这些节点的 __render 方法进行重绘。 这里为什么 rect4 没有被重绘呢?...虽然它和 circle2 相交了,但由于提前进行了一次 clip,因此 circle2 的重绘不会影响到 rect4。 使用局部渲染,可以避免每次节点的修改都会触发整个画布的重绘,降低绘制的开销。

    57310
    领券