问题标签 [swingx-highlighter]

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.

0 投票
1 回答
2391 浏览

java - JXTable - 过滤表后的荧光笔

信息 - 为了更好的格式,我在整个发布过程中使用了代码格式。

0 投票
0 回答
491 浏览

java - 将 JXTable 与 MatchingTextHighlighter 一起使用时突出显示错误

基本问题:

在更改 TableColumn 的宽度时,该方法 SwingUtilities.layoutCompoundLabel(..)将参数Rectangle textR设置为旧值(或“之前的值”)。
我怎样才能获得当前(实际)矩形值?


一些背景信息和错误修正:

我使用 SwingLabs-Demos 中的MatchingTextHighlighter.java(示例是 SearchDemo.java)

仅在 JXTable 单元格中标记找到的字符是一个非常好的开始。但是如果我将单元格内容的对齐方式从更改LEFT

或者

如果突出显示字符,则会出现三个错误:

一张图片中的三个错误

  1. 情况:JLabel 的文本完全可见。
    问题:列越宽(使用列标题调整大小),荧光笔越向右漂移(远离匹配的字符)。

  2. 情况: JLabel 的文本部分可见(用省略号绘制...),但突出显示的字符串完全可见。
    问题:在调整列宽时,荧光笔位置从一个像素到一个字符是错误的。

  3. 情况:JLabel 的文本和突出显示的字符串部分可见(荧光笔应该在省略号上)
    问题:省略号上的荧光笔在调整列宽时宽度错误(从无像素到正确宽度)。
    这是在左对齐列中也可见的唯一错误(荧光笔始终具有正确的宽度,但有时会跳到右侧)。

一个错误可以通过注释掉textR.x2 行来修复(从 MatchingTextHighlighter.java 中的第 327 行开始):

出现了两个较小的问题:
一个是如果匹配区域从第一个标签字符开始,则荧光笔开始向左多一个像素。如果使用列标题调整列的宽度,则第二个是在中心对齐的列中突出显示一个像素的跳跃。
两者(加上 RightToLeft-Error)都可以通过这些更改来修复(从 MatchingTextHighlighter.java 中的第 397 行开始):

第三个错误可以通过(更改 XMatchingTextHighlighter.java 中的第 48 行)部分修复:

现在荧光笔总是从省略号的第一个像素开始,修复!:-)
但是在调整列大小时宽度会不断变化,错误!:-(

在调试了MatchingTextHighlighter.java 中的第二个和(剩下的一半)第三个错误之后,我认为对实用程序方法的调用

将参数textR设置为旧值。在调整列大小时,文本矩形的计算宽度似乎是“一个事件落后”。正因为如此,荧光笔的位置是错误的。

有没有人有办法解决这个问题?

感谢您阅读所有这些...

0 投票
1 回答
4505 浏览

java - SwingX JXTable:使用 ColorHighlighter 根据“行对象”为行着色

我正在使用 JXTable,并且我知道如何基于 DefaultRenderers for JTable 执行此操作,但我想知道如何以基于 HighlighterPipeline 的 JXTable 友好的方式执行此操作。

我有一个显示在表格中的对象列表,每一行代表一个对象。我想将显示某种类型的对象的行着色为不同的颜色。

看起来我应该使用ColorHighlighter。但我找不到这方面的例子,除了像“每隔一行着色”这样的简单荧光笔或类似的东西。

我需要行号,因为在 JTable/TableModel 范例中没有“行对象”之类的东西,但如果我能做到这一点,我可以轻松测试谓词并返回真/假来告诉荧光笔是否启动.

有人可以帮我找出正确的方向来让它发挥作用吗?

0 投票
1 回答
1837 浏览

java - 如何使用 swingx 1.6 突出显示 JTable 中的每一行

我需要突出显示我的 JTable 中的每一行。使用旧版本的 swingx 可以这样做:

但是现在,对于 swingx 1.6,方法setHighlighters()不能接受这些参数。它说“JXTable 类型中的方法 setHighlighters(Highlighter...) 不适用于参数 (HighlighterPipeline)”

那么我怎么能用新的swingx呢?

0 投票
0 回答
613 浏览

java - 突出显示 JXTreeTable 行

我编写了以下代码来突出显示 JXTreeTable 中的一行,

它不工作。请帮助

0 投票
1 回答
257 浏览

java - 如何在 SwingX 中使用相对单元格突出显示?

我想突出显示 org.jdesktop.swingx.JXTreeTable 中相对于内部值的单元格,例如“突出显示(扩展)”下的 SwingX 展示中:

i.imgur.com/iw89kqn.png

展示中提供了一些代码,但我无法让它工作,它没有突出显示任何内容。我无法真正理解荧光笔在哪里绑定到值(可能提供的代码不完整)。也没有可用的文档。

以下是展示中的代码:

这是我的代码:

TreeFrame.java

我从示例中获取了相关的代码片段,并根据我的要求对其进行了更改。我的 RelativePainterHighlighter 类与展示中的完全一样。

这是我的 ProfileThreadElement 类:

ProfileThreadElement.java

还有我的树表模型:

NoRootTreeTableModel.java

我认为最大的问题是我不知道在哪里调用 TreeFrame.setCurrentDuration(...) 方法。展示演示中缺少此内容。有没有人有相对突出的工作?

任何帮助表示赞赏,在此先感谢!

PS:如果我遗漏了什么或者您需要更多信息,请告诉我!

0 投票
1 回答
179 浏览

java - 如何使用 SwingX 的 Highlighter 返回不同的渲染器组件?

我注意到 SwingX 的Highlighter界面允许荧光笔返回与传入的组件不同的组件。我实际上找不到任何正在使用的示例,但我想我会尝试使用它来创建某种假秒柱子。

预期的结果是左列中的文本应该截断右列开始的位置,所以我不能只使用Painter. 右列应该为整个列表呈现相同的宽度,这是我还没有弄清楚但似乎并不难的问题。

至于现在,我发现行高被压缩到很小,你看不到任何文字。

这就是我的意思:

截屏

示例程序:

我想知道是否有正确的方法来使用这部分 API。我故意扩展JRendererLabel以防万一那是问题,但它似乎更微妙......