谁在我的类中调用 PaintComponent() 方法?

2024-03-17

我有一个简单的类,可以在 JPanel 中绘制图形。这是我的课:

import java.awt.Color;
import java.awt.Dimension;
import java.awt.Graphics;
import javax.swing.JPanel;

class Drawing_panel extends JPanel {
    public void paintComponent(Graphics g) {
    super.paintComponent(g);       
    this.setBackground(Color.white);
    g.setColor(Color.red);
    g.fillRect(150, 80, 20, 20);
}  

public Dimension getPreferredSize(){
    return new Dimension(500,500);
}

}

我有另一个类实例化这个类:

Drawing_panel dp = new Drawing_panel();

中没有构造函数Drawing_panel类和/或没有显式调用paintComponent() or getPreferredSize()方法。我假设该方法正在父级中被调用JPanel构造函数,但我也没有看到那里的调用。


The paintComponent从几个不同的地方调用。电话来自JComponent.paint可能就是您正在寻找的人。

注意paintComponent is 不从任何构造函数调用. The paintComponent叫做“一经请求”即当系统决定需要重新绘制组件时。 (例如,当调整组件大小时,或者当窗口从最小化状态恢复时。)需要明确的是:组件不是“先绘制,然后使用”,而是“先使用,然后在需要时绘制”。

您无需担心整个绘画调用链,因为它完全由 Swing 和所谓的事件调度线程处理。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

谁在我的类中调用 PaintComponent() 方法? 的相关文章

  • Java Logger 未记录到 Netbeans 中的输出

    我正在 Netbeans 中使用 Maven 启动一个 Java 项目 我编写了一些代码来使用 Logger 类进行日志记录 但是 日志记录似乎不起作用 在程序开始时 我运行 Logger getLogger ProjectMainClas
  • 垃圾收集器如何在幕后工作来收集死对象?

    我正在阅读有关垃圾收集的内容 众所周知 垃圾收集会收集死亡对象并回收内存 我的问题是 Collector 如何知道任何对象已死亡 它使用什么数据结构来跟踪活动对象 我正在研究这个问题 我发现GC实际上会跟踪活动对象 并标记它们 每个未标记的
  • Jframe 内有 2 个 Jdialogs 的 setModal 问题

    当我设置第一个选项时 我遇到了问题JDialog模态 第二个非模态 这是我正在尝试实现的功能 单击 测试对话框 按钮 一个JDialog有名字自定义对话框 主要的将会打开 如果单击 是 选项自定义对话框主 其他JDialog named 自
  • 从 MATLAB 调用 Java?

    我想要Matlab程序调用java文件 最好有一个例子 需要考虑三种情况 Java 内置库 也就是说 任何描述的here http docs oracle com javase 6 docs api 这些项目可以直接调用 例如 map ja
  • 将巨大的模式编译成Java

    有两个主要工具提供了将 XSD 模式编译为 Java 的方法 xmlbeans 和 JAXB 问题是 XSD 模式确实很大 30MB 的 XML 文件 大部分模式在我的项目中没有使用 所以我可以注释掉大部分代码 但这不是一个好的解决方案 目
  • 将非 Android 项目添加到 Android 项目

    我在 Eclipse 中有三个项目 Base Server 和 AndroidClient Base和Server是Java 1 7项目 而AndroidClient显然是一个android项目 基础项目具有在服务器和 Android 客户
  • 如何在 Spring 中使 @PropertyResource 优先于任何其他 application.properties ?

    我正在尝试在类路径之外添加外部配置属性资源 它应该覆盖任何现有的属性 但以下方法不起作用 SpringBootApplication PropertySource d app properties public class MyClass
  • Android 无法解析日期异常

    当尝试解析发送到我的 Android 客户端的日期字符串时 我得到一个无法解析的日期 这是例外 java text ParseException 无法解析的日期 2018 09 18T00 00 00Z 位于 偏移量 19 在 java t
  • 将人类日期(当地时间 GMT)转​​换为日期

    我正在服务器上工作 服务器正在向我发送 GMT 本地日期的日期 例如Fri Jun 22 09 29 29 NPT 2018在字符串格式上 我将其转换为日期 如下所示 SimpleDateFormat simpleDateFormat ne
  • 如何在 ant 中为 junit 测试设置 file.encoding?

    我还没有完全完成file encoding 和 ant https stackoverflow com questions 1339352 how do i set dfile encoding within ants build xml
  • 如何使用 JMagick 转换色彩空间?

    如何使用 JMagick API 转换色彩空间 例如 CMYK gt RGB 和 RGB gt CMYK None
  • Java继承,扩展类如何影响实际类

    我正在查看 Sun 认证学习指南 其中有一段描述了最终修饰符 它说 如果程序员可以自由地扩展我们所知的 String 类文明 它可能会崩溃 他什么意思 如果可以扩展 String 类 我是否不会有一个名为 MyString 的类继承所有 S
  • Spring @Cacheable 和 @Async 注解

    我需要缓存一些异步计算的结果 具体来说 为了克服这个问题 我尝试使用 Spring 4 3 缓存和异步计算功能 作为示例 我们采用以下代码 Service class AsyncService Async Cacheable users C
  • 在 Spring 上下文中查找方法级自定义注释

    我想知道的是 所有的类 方法Spring http en wikipedia org wiki Spring Framework注释为 Versioned的bean 我创建了自定义注释 Target ElementType METHOD E
  • 将 JScrollPane 添加到 JFrame

    我有一个关于向 Java 框架添加组件的问题 我有一个带有两个按钮的 JPanel 和一个添加了 JTable 的 JScrollPane 我想将这两个添加到 JFrame 中 我可以将 JPanel 添加到 JFrame 或将 JScro
  • 手动设置Android Studio的JDK路径

    如何为 Android Studio 使用自定义 JDK 路径 我不想弄乱 PATH 因为我没有管理员权限 是否有某个配置设置文件允许我进行设置 如果您查看项目设置 您可以从那里访问 jdk 在标准 Windows 键盘映射上 您可以在项目
  • Hibernate 本机查询 - char(3) 列

    我在 Oracle 中有一个表 其中列 SC CUR CODE 是 CHAR 3 当我做 Query q2 em createNativeQuery select sc cur code sc amount from sector cost
  • java 中的蓝牙 (J2SE)

    我是蓝牙新手 这就是我想做的事情 我想获取连接到我的电脑上的蓝牙的设备信息并将该信息写入文件中 我应该使用哪个 api 以及如何实现 我遇到了 bluecove 但经过几次搜索 我发现 bluecove 不能在 64 位电脑上运行 我现在应
  • Spring RESTful控制器方法改进建议

    我是 Spring REST 和 Hibernate 的新手 也就是说 我尝试组合一个企业级控制器方法 我计划将其用作未来开发的模式 您认为可以通过哪些方法来改进 我确信有很多 RequestMapping value user metho
  • java'assert'和'if(){}else exit;'之间的区别

    java和java有什么区别assert and if else exit 我可以用吗if else exit代替assert 也许有点谷歌 您应该记住的主要事情是 if else 语句应该用于程序流程控制 而assert 关键字应该仅用于

随机推荐

  • 带有图像背景和鼠标绘制的面板

    如果 Paint 方法已用于其他目的 如何在 JPanel 中使用图像作为背景 我试图在面板中绘制图像 这是我用铅笔绘制的代码 但我不知道如何添加图像作为背景 Override public void paint Graphics g if
  • 将环境变量传递给角度库

    我使用 angualr2 library yeoman 生成器创建了公司内部库 一些 Angular 服务在我们当前的应用程序中使用环境变量 API 端点在每个环境上都会更改 我想知道将当前环境对象传递给 angular2 库服务的最佳方法
  • 如何在ng bootstrap的输入中设置日期格式

    我在用NG引导程序 https ng bootstrap github io components datepicker日期选择器 我想在输入标签中设置日期格式 这是我的html代码
  • 将盲文字符打印到 cmd c++

    对于一个程序 我需要将盲文字符输出到控制台 我找到了一种使用如下代码输出 unicode 字符的方法 include
  • onCreateDrawableState 永远不会调用

    我必须向RelativeLayout 添加新状态 但永远不会调用onCreateDrawableState 方法 我的班级是 public class UnreadableRelativeLayout extends RelativeLay
  • java.lang.ClassCastException:无法转换 java.util.LinkedHashMap

    javascript ajax headers Accept application json Content Type application json url realgrid product addOd do type post da
  • SqlDataAdapter.Fill() 超时 - 底层存储过程快速返回

    我有一个 SqlDataAdapter 其中填充了 21 行数据 4 列 驱动它的存储过程会在几秒钟内返回 SQL Mgmt Studio 但 Fill 需要 5 分钟 ArrayList ret new ArrayList SqlData
  • iOS - CALayer 和手势/滑动识别器

    我在视图中添加了一个图层来创建渐变背景色 但我需要使用UISwipeGestureRecognizer在我看来 问题是 现在有了图层 滑动识别器就不起作用了 我能怎么做 我可以向图层添加滑动识别器吗 谢谢 CALayer及其孩子不支持UIG
  • 对象字面量中的括号

    对象字面量中的括号只是分组运算符吗 节点字符串化 https github com fuqcool node stringify将转换 a 1 到字符串 a 1 a 2 我是否可以认为这里的括号对数据没有影响 即即使没有括号也完全相同 Ye
  • 最小宽度媒体查询在 ipad 上不起作用?

    为什么在横向模式下的 iPad 上无法拾取以下媒体查询 media all and min device width 1000px css here Or media all and min width 1000px css here 我希
  • Django:无法将关键字“”解析为字段。选项有:

    我在访问时遇到这个奇怪的问题ManyToManyField 我有以下型号 class Link models Model title models CharField max length 200 url models URLField u
  • 将 uri 传递给另一个 Activity 并将其转换为图像

    如何发送uri图像到另一个活动的路径并将其转换为图像 我尝试了下面的 protected void onActivityResult int requestCode int resultCode Intent data super onAc
  • 使用 SQL 和 PHP 将数据从页面传递到引导模式

    因此 根据标题 我尝试在引导模式上使用 sql 来传递显示数据库中的多个数据 ID会从链接中传递下来 是怎么做到的呢 一直在寻找多种方法 但我仍然无法显示所选数据 所以这是模式的触发器 tr td style text align cent
  • VB6在制作exe文件时冻结

    我正在用 VB6 编写一个项目 我使用的是 Win7 32 位 项目有问题 这个项目是很多年前写的 现在我正在重新编译它 当我发出 Make xxx exe 命令时 VB6 开始编译并冻结 还创建了超过 10 000 个 tmp 文件 几分
  • android livedata进行顺序调用

    我正在使用改造 实时数据 我的项目中有一种情况 我必须进行网络调用的顺序 如果任何一个失败 它应该返回错误 目前我有两个实时数据观察者来完成工作 这不是一个好的方法 所以我想知道更好的方法或示例代码来处理这种需求 注意 我没有使用 Rxja
  • C++ std::function 找不到正确的重载

    考虑以下情况 void Set const std function
  • VS 2017 颜色主题编辑器 - 如何更改 Intellisense 自动完成背景颜色

    我已使用颜色主题编辑器导入了透明主题 并且正在尝试更改自动完成框的背景颜色 目前 如下所示 它是透明的 并且很难阅读下面几行的文本 我尝试了多种元素 但找不到合适的元素 谷歌一无所获 如何更改自动完成 智能感知自动完成框背景颜色 将树视图背
  • 在pandas中,如何找到累积和大于阈值的行/索引?

    我想找到某列中的值的累积和超过阈值的行 索引 我可以并且确实使用一个简单的循环找到这个位置 如下所示 def sum to df col threshold s 0 for r in df iterrows if s r 1 col gt
  • 如何使 pdb 识别出运行之间的源已更改?

    据我所知 pdb 无法识别源代码在 运行 之间何时发生更改 也就是说 如果我正在调试 注意到一个错误 修复该错误 然后在 pdb 中重新运行程序 即不退出 pdb pdb 将不会重新编译代码 即使 pdb 列出了新的源代码 我仍然会调试旧版
  • 谁在我的类中调用 PaintComponent() 方法?

    我有一个简单的类 可以在 JPanel 中绘制图形 这是我的课 import java awt Color import java awt Dimension import java awt Graphics import javax sw