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

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

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

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

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

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

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

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

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

相关·内容

Android自定义按周签到打卡功能实例代码

2、连续签到记录在第8天开始将清零新计算。 3、如果中断签到,连续签到记录也将清零。...mTextNumberPaint; private Paint mTextDayPaint; /** * 是否执行动画 */ private boolean isAnimation = false; /** * 记录次数...,获取该点意义是为了方便画矩形左上Y位置 mLeftY = mCenterY - (mCompletedLineHeight / 2); //获取右下方Y位置,获取该点意义是为了方便画矩形右下...{ //完成 isAnimation = false; mCount = 0; } } /** * 绘制初始状态view */ @SuppressLint("DrawAllocation") private...主程序逻辑处理 /** * 一周签到规则: * 1、连续签到7天,即可额外获得15积分奖励 * 2、连续签到记录在第8天开始将清零新计算 * 3、如果中断签到,连续签到记录也将清零 * * 注:可以显示签到动画

74340
  • 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 View教程之自定义验证码输入框效果

    基本理解画布概念 画布状态、平移 布局测量 画图片 功能需求 高亮当前输入框 输入满4个数字自动调用方法 思路 完全重画一个EditText,就包含了测量布局和重新绘制这两个关键步骤。...开始动手 准备开始了,果断继承一个AppCompatEditText 来初始化基本参数先: 验证码个数 输入方框大小 边框大小及间距 /** * 验证码输入框,重写EditText绘制方法实现...private int mStrokePadding = 20; // 用矩形来保存方框位置、大小信息 private final Rect mRect = new Rect(); // 方框背景...重新设置文本颜色 setTextColor(mTextColor); // 背景颜色 drawStrokeBackground(canvas); // 文本 drawText...画验证码文字 /** * 文本 */ private void drawText(Canvas canvas) { int count = canvas.getSaveCount

    1.3K30

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

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

    55611

    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

    93510

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

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

    76330

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

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

    59020

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

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

    2.1K20

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

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

    97030

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

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

    2K20

    简单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

    Android实现 刮刮乐效果

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

    1.4K20

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

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

    49540

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

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

    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都不一样缘故。

    4.9K84

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

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

    1.4K20

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

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

    1.6K20
    领券