问题标签 [swingx]
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 - 日期和时间 jframe GUI
我正在尝试在我的 GUI 中包含一个日期/时间选择器。我怎样才能做到这一点?。有人可以告诉我或给我一个教程的链接吗?
java - 处理长时间运行的 EDT 任务(Fi TreeModel 搜索)
触发器是最近重新检测到的 SwingX 问题:支持深度 - 即在折叠节点下,而不是仅可见节点,这是当前行为 - 节点搜索。
“Nichts leichter als das”和我目前对 SwingWorker 的所有接触:在后台线程中遍历 TreeModel 并更新进程中的 ui,如下面的粗略片段所示。Fest 的 EDT 检查器很高兴,但它只检查重绘(这在 EDT 上很好地发生了)
只有......严格来说,该后台线程必须是 EDT,因为它正在访问(通过读取)模型。所以,问题是:
- 如何正确实现搜索线程?
- 还是我们可以承受这种风险(当然,有大量记录)
特殊情况解决方案的一种可能性是使用第二个(克隆或“相同”制造的)模型进行搜索,然后在“真实”模型中找到相应的匹配项。这与一般搜索支持并不能很好地配合,因为它无法了解任何特定模型的任何信息,即使它想要也无法创建克隆。另外,它必须应用所有视图排序/过滤(将来)......
仅供参考:交叉发布到OTN 的 Swing 论坛和SwingLabs 论坛- 将尝试在最后发布所有输入的摘要(如果有的话 :-)
附录
在一天结束时,事实证明我问了错误的问题(或在错误的上下文中提出了正确的问题;-):“问题”是由假设的解决方案引起的,要解决的真正任务是支持分层搜索算法(现在 AbstractSearchable 严重偏向于线性搜索)。
一旦解决了这个问题,下一个问题可能是框架可以做多少来支持具体的分层搜索。鉴于 TreeModels 的各种自定义实现,这很可能仅适用于最简单的实现。
在这里和其他论坛的讨论中提出了一些想法。在具体的上下文中,首先测量遍历是否缓慢:大多数内存模型的遍历速度非常快,除了使用基本支持之外不需要做任何事情。
只有当遍历是瓶颈时(如 SwingX 的 FileSystemModel 实现中的 fi),才需要额外的工作:
- 在一个真正不可变和不可修改的 TreeModel 中,我们可能会在 SwingWorker 的后台线程中获得只读访问权限
- 在延迟加载/删除场景中违反了不可修改的前提条件
- 可能有一个支持模型的自然自定义数据结构,它实际上与实际模型“分离”,允许同步到该支持模型(在遍历模型和视图模型中)
- 将实际搜索传回数据库
- 在给定的 TreeModel 之上使用包装器,以保证访问 EDT 上的底层模型
- “假”背景搜索:实际上是在 EDT 上足够小的块中进行(在计时器中),这样用户就不会注意到任何延迟
无论慢搜索的技术选项是什么,都有相同的可用性问题需要解决:如何将延迟呈现给最终用户?这是一个完全不同的故事,可能更依赖于上下文/需求:-)
java - 如何使 JXTreeTable 对其顶部元素进行排序
我知道(我已经查看了来源;))在 JXTreeTable 上的排序已被禁用。
但是,我想允许仅基于根节点的直接子节点的值对所有列进行排序。
假设我有这样的结构:
我想要实现的是仅在第一级节点上对 3 列进行排序。假设我想按升序对它进行排序,结果会是这样:
正如我所看到的,它类似于简单的表排序(因此取消了为禁用排序而调用的层次结构限制)。
我看到了两种可能性:
- 重新启用 JXTable 中可用的排序机制,以从已经实现的所有内容中受益(排序器,通过单击标题进行排序,...)并且仅对第一级的节点进行排序(因为它们的子节点仍然具有相同的父节点) .
- 实现我需要的基本内容(主要通过单击标题进行排序),在 JXSortableTreeModel 中有一个模型行 id 列表,我对其进行排序并覆盖 convertRowIndexToModel ,这将允许(我认为)显示我想要排序的项目。
我最喜欢的当然是第一个,但我不知道如何实现它。第一个限制是我不知道如何重新启用排序,因为 JXTreeTable 覆盖了 setSortable() (以及所有相关方法),并且我不知道如何直接访问 JXTable 中方法的实现(这是一个 Java 问题)。我可以简单地复制 JXTreeTable 的代码并删除覆盖,但我认为这不是一个选项。
假设我解决了这个问题,我将如何将排序限制在一级节点?即使在查看源代码之后,我也对如何做到这一点一无所知。
对于第二个,我失去了现有代码的所有好处,但我看到了一种实现我想要的实用方法(至少现在。谁知道是否不想过滤所有行上的数据?)。
还有其他方法吗?如果不是,我应该选择哪一种解决方案?有什么有见地的评论吗?
提前谢谢了!
java - JXTable 列排序在 1.0 和 1.6 之间变化
自从我们更新到 JDK1.6 后,我最近将应用程序中的 SwingX 库从 1.0 更新到 1.6.2。我知道排序已更改为重新使用 JDK 1.6 中引入的一些核心 JDK 组件。
但是,在 1.0 版中,可以通过单击标题对列进行排序,随后的单击恢复了排序顺序,而 shift 单击删除了排序并恢复到原始顺序。更新到 1.6.2 版本后,shift 点击行为不再存在。
一个小样本
使用 1.0 版运行此示例允许通过按住 shift 单击标题来删除列排序,而在 1.6.2 版中,这不再有效。
我检查了文档,但没有遇到任何可以重新打开此行为的内容。因此,在我开始添加此功能之前,我虽然在这里问过是否有人知道重新引入 shift-click 行为的简单方法
java - JXScrollUp 编译
由于示例源代码 JXScrollupTest.java,我没有找到包含类 JXScrollUp 的包。我正在使用这个类路径:
我该如何编译它?非常感谢
卢卡斯
java - 如何在 Java 中创建这样的边框?
我一直试图复制这个边界几个小时没有成功:
关于如何做到这一点的任何想法?
java - 静态 JComboBox 不在 GUI 中显示
我需要从多个类访问 goToTop 和 discCrop 方法,并且由于我需要使用同一个 plantList JComboBox 实例,因此我试图将其设为静态。但是当我运行下面的代码时,JComboBox 不会显示在 GUI 中。如果我取出静电,它会完美显示。
}
rendering - JXTable - 如何将列呈现为图标/标签?
我有一个 JXTable 已启动并正在运行,但我想将一列呈现为标签或图标。我已经有了将字符串值转换为标签的代码(一系列图标附加在一起)。我只需要知道如何告诉表格这样渲染它。
任何的想法?
提前致谢!
java - 在 JPanel 摆动中显示图像时内存不足
我正在尝试在 JPanel 中显示图像。我正在为此使用 swingx 库 - ImagePainter。因此,我创建了一个 JXPanel,并将背景画家设置为 ImagePainter。
现在,我需要在 2 个单独的 JFrame 中的 2 个 JPanel 上显示相同的图像。当我这样做时,我遇到了堆空间问题。在这种情况下,我是否共享同一个 ImagePainter 实例?那会有帮助吗?但这意味着如果我需要显示多个独特的图像,无论如何我都会遇到内存不足的错误。我做错了什么吗?
我使用的代码如下:
错误堆栈跟踪如下:
更新:这是显示问题的 SSCCE: 您需要 jgoodies 表单布局 jar 和类路径中的 swingx jar 才能编译。再次单击 On Image 两次,对我来说,出现内存不足错误。我使用的图像也附上。
java - SwingX JXTable:使用 ColorHighlighter 根据“行对象”为行着色
我正在使用 JXTable,并且我知道如何基于 DefaultRenderers for JTable 执行此操作,但我想知道如何以基于 HighlighterPipeline 的 JXTable 友好的方式执行此操作。
我有一个显示在表格中的对象列表,每一行代表一个对象。我想将显示某种类型的对象的行着色为不同的颜色。
看起来我应该使用ColorHighlighter。但我找不到这方面的例子,除了像“每隔一行着色”这样的简单荧光笔或类似的东西。
我需要行号,因为在 JTable/TableModel 范例中没有“行对象”之类的东西,但如果我能做到这一点,我可以轻松测试谓词并返回真/假来告诉荧光笔是否启动.
有人可以帮我找出正确的方向来让它发挥作用吗?