java - CellRendererPane 的用途是什么?

标签 java swing

javax.swing.CellRendererPane“插入到单元格渲染器和使用它们的组件之间”并且“只是为了阻止 repaint() 和 invalidate() 方法而存在,否则它们会传播配置渲染器后在树上向上。”

JavaDoc 就是这么告诉我的,但这是什么意思呢?它是如何使用的,如果允许 repaint()invalidate() 向上传播树会发生什么?特别欢迎具体示例。

最佳答案

这意味着它被插入到组件树的中间( Root 于顶层窗口)并且会吃掉某些事件,例如重新绘制和无效以防止它们在组件包含层次结构中传播。

为什么?因为重新绘制和无效是处理成本高昂的事件;在这种情况下没有必要;一个简单的组件( Pane )就可以轻松过滤它们。

如果事件要传播,那么每个组件都将不必要地重新计算其布局(无效)并重新绘制(重绘)本身。

关于java - CellRendererPane 的用途是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6837158/

相关文章:

java - JSplitPane 精确分割 50%

java - 如何找到 JTextPane 文档的默认属性?

Java TextField getText() 返回先前的字符串值

java - "new Foo(){}"与 Java 中的 "new Foo()"

java - 使用 Java DSL 成功 ftp 传输后移动文件

java - 在非映射元素上产生 JAXB 错误

java - Play Framework 在内存 h2 数据库中用于单元测试

Java Swing - 难以实现所需的布局

Java JTable 无法加载

java - 如何在不使用swing的情况下连接netbeans中的两个JFrame?