问题标签 [custom-renderer]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
java - Java/Swing:如何在 JLabel 的自定义渲染器中绘制简单的条形图
我想动态创建一个最小的透明条形图以显示在画布上。
我正在考虑为 JButton 或 JLabel 使用自定义渲染器;但是如何在这个渲染器中绘制我的条形图?
jsf - 如何在 JSF 中注册自定义渲染器?
我们的数据库中有数值,表示双值状态。当然,这将完全匹配布尔值,但 oracle 没有这样的数据类型。数据库中的 NUMBER(1,0) 类型与 Java 中的 java.lang.Short 类型匹配(有时他们使用 NUMBER(*,0) 来表示与 java.math.BigDecimal 匹配的布尔值)。
由于它在某种程度上很明显,我想在视图中提供 ice:selectBooleanCheckbox 作为值表示和 UIComponent 给用户。(我使用 IceFaces 作为 JSF 实现)
由于某些指定 JSF 的人认为总是将 ice:selectBooleanCheckbox 或 JSF h:selectBooleanCheckbox 的值与模型中的布尔值相匹配是显而易见的,因此组件的渲染器从不调用任何转换器,即使您指定了一个: 在 java.net 上讨论的问题
因此我尝试了以下方法:
我创建了一个转换器来在 UIComponent 中指定它:
转换器在渲染阶段工作正常(getAsString 方法被正确调用),但 getAsObject 方法(忽略它目前不正确,因为它没有被调用,所以如果它被调用它将被修复!)是从未调用过,因为在 UIComponent 的渲染器中没有预见到转换器,就像您可以在此处看到的那样(来自 com.icesoft.faces.renderkit.dom_html_basic.CheckboxRenderer 的片段):
所以这会导致 IllegalArgumentException,因为在 UpdateModelValues 阶段它试图将布尔值应用于数值(请忽略 BigDecimal/Short 混淆......无论如何它只是一个数值类型!)。
所以我尝试用这样的新渲染器覆盖渲染器:
并像这样在 faces-config.xml 中注册它:
我想这应该是正确的,但是从未调用过覆盖的方法“getConvertedValue”,也没有调用 getAsObject() 方法,所以我想我在注册自定义渲染器时犯了一个错误,但我找不到更多文档或提示如何正确执行此操作,尤其是如何找到正确的组件系列(我查找了我在 icefaces.taglib.xml 中使用的那个)和正确的渲染器类型。
因此,我不想编辑完整的模型。任何提示,如何解决?
apache-flex - AS3 如何在运行时使用图像(base64 png 字符串)创建自定义列表项渲染器
我是 Flex 的新手。我正在尝试创建一个带有图标的列表。有很多示例,但似乎所有示例都使用嵌入式图像。我的问题是如何在运行时使用 base64 png 字符串中的图标创建列表?
java - 带有图像和文本的 JList:文本来自 ArrayList
我有一个简单的 JList 示例,它从 ArrayList 获取数据,但我想在列表中的每个字符串旁边显示一个图像。我编写了一个自定义单元格渲染器(IconListRenderer),它假设可以并排显示图标和对象。
这是一个运行示例。
//IconListRenderer 类
列表显示当前但没有图像?
java - 在 JTree 的节点内创建 JTable
我知道之前有人问过这个问题,但我没有得到正确的解决方案。
我读到了大纲,但这与我想要的正好相反,即 JTree
中的 JTable 我想在 JTable 中显示数据,但它存储为不同的组,所以
当我花费一个组(节点)JTable 时,这些组是 JTree 的节点该组的显示。
我在 oracle 中浏览了这篇文章:在 Swing 中创建 TreeTables:第 1 部分
这已经很老了,不适用于我的 java 版本(我不知道为什么!),所以我
浏览了 TreeTable 的下一部分:在 Swing 中创建 TreeTables:第 2 部分
整个代码相对较新,因为它使用“javax.swing”代替
“com.sun.java.swing”,但我在这里遇到的问题是缺少一个名为
“FileSystemModel2.java”的文件,它是从以前的版本,所以我不能
使用旧版本。新的“FileSystemModel.java”中添加了一些方法。我如何通知
他们这个丢失的文件,或者如果你有不同的方法,请告诉我。
我想要达到的目标如下图所示:
这张图片来自“LastPass”,我想将自己的密码管理器作为我的项目
所以请帮我解决这个问题,我已经很接近了,但我不能再进一步了。
wpf - 您如何使用蒙版进行自定义绘图?
我们有一个控件,我们在 OnRender 中进行自己的自定义绘图。但是,如果您愿意,我们希望使用具有透明度的 PNG 作为各种绘图“通道”的模板。
现在我们已经知道我们可以简单地在 ImageBrush 中使用 PNG 并将其设置为控件的 OpacityMask,但我们实际上想要使用几种不同的模板进行多次绘制。如果我们想走 OpacityMask 路线,我们必须创建单独的控件、单独的 ImageMask,然后将它们全部堆叠在一起,这也会使您的视觉树变得混乱。
我们不想那样做。我们希望在单个Control
子类的 OnRender 覆盖中完成所有绘图。我们只希望那些绘制调用被图像掩盖。然后我们想一遍又一遍地重复,直到我们的绘图完成。
有什么办法可以做到这一点?
java - 重新验证 JList - 自定义元素
我正在使用 JList 来保存我的聊天程序的聊天数据。
它使用自定义列表渲染器将自定义 JPanel 对象渲染为元素类型。
这个 JPanel 包含两个 JLabel(锚定在顶部,用于名称和时间)和一个 JTextArea(锚定在底部,用于聊天消息)。
它看起来像这样:
一切都很好,但我想添加一个隐藏/显示功能。
使用以前编程的 PopupMenu 处理程序,当您右键单击一个元素时,我会出现一个弹出窗口。
当您单击隐藏(或显示,它是一个切换)时,它应该像这样最小化元素......
唯一的问题是......它不会更新 JList 单元格大小,因为您可以看到文本曾经所在的大空白区域。
但是,当我键入另一条消息时...
JList 修复了完成“隐藏”操作的单元格大小。
我的问题是如何让 JList 以编程方式重新验证/重新绘制/等。
不要以为我没有尝试所有明显的解决方案......
自定义 JPanel 类使用 GroupLayout 来呈现组件。
你们对如何以编程方式使 JList 重新验证其单元格大小有任何知识吗?
...除了我发布的方法之外?:)
解决方案:
在一个接一个地搜索方法并测试它们是否能解决我的问题后,我发现在隐藏/显示操作之后执行此代码会导致单元格高度(和宽度)被重新计算,并且没有任何不需要的视觉“闪烁”列表。
jsf-2 - 为 TabView 组件声明一个新的渲染器
我想在 PrimeFaces Tab/Tabview 组件的基础上构建一个新组件。它应该看起来像浏览器中的添加选项卡,并打开一个用于填写表单的页面。问题是我想将它集成到基于数据模型(http://www.primefaces.org/showcase/ui/tabviewModel.jsf)的 TabView 中。现在,我可以将用于填写表单的选项卡与带有预定义数据的选项卡结合起来,也可以使用 TabView,它可以为我的数据动态创建选项卡。
我已经阅读了有关以两种方式创建自定义组件的 JSF 文档——作为复合组件或作为新的 Java 类。我试图创建一个自定义组件,但它似乎不像我描述的那样工作。
我的问题是:
1)是否有可能用复合组件解决这个问题?如果是的话,有人可以给我一个提示吗?
2)如果没有,是否有在现有 PrimeFaces 组件(可能是新的 TabView 类型)的基础上编写新组件的教程?
UPD:在做了一些研究之后,我意识到最简单的方法是为 TabView 编写一个新的渲染器。
我声明了一个新的渲染器类:
并在 faces-config.xml 中注册:
但是,当渲染带有 TabView 组件的视图时,会调用 TabViewRenderer 的 encodeEnd 方法,而不是 AddableTabViewRenderer 的覆盖方法。你能告诉我问题可能出在哪里吗?
ruby-on-rails - Rails will_paginate 自定义渲染器手册页码
我想要做的是为 will_paginate 创建一个自定义渲染器,它渲染第一页、上一页、下一页和最后一页以及用户可以手动输入页码的输入字段。我已经有了第一个、最后一个等的链接,但我卡在输入字段上。我可以在视图中创建一个表单,但输入字段必须在上一个和下一个链接之间呈现。有谁知道如何做到这一点?
谢谢你的帮助
jsf - 自定义 JSF 组件:将“startElement”与“script”一起使用会产生注释
我正在渲染一个自定义 JSF 组件。在方法encodeBegin 中,我想包含一些 java 脚本。
渲染组件时,脚本标记的内容被注释掉。
谁能解释为什么会出现此评论以及我如何摆脱它?
提前致谢!