【问题标题】:Java- "Circular" selection in JTextPane?Java- JTextPane 中的“循环”选择?
【发布时间】:2015-12-16 01:28:09
【问题描述】:

我一直在开发一个 GUI 来处理 DNA 序列。大多数分子将是plasmids,它们是 DNA 的环状形式。我可以将序列作为字符串获取并将其显示在 JTextPane 中,但我不确定如何处理用户可能想要选择从序列的结尾到开头的序列部分的情况。我考虑过的一件事是显示序列两次,因此您可以选择第一部分的最后一部分和最后一部分的第一部分,然后覆盖一些函数,以便复制文本会将正确的序列放在剪贴板上实际选择的字符串。 (无论如何我都必须这样做,我显示的是 DNA 的正向和反向链,然后是一个空白行,因此实际序列的 1“行”变成了 3 行文本。

循环字符串有什么我不知道的技巧吗?

【问题讨论】:

  • 对每个序列使用单个 JTextPane,使用 VerticalLayoutGridBagLayout 并将这些添加到 JPanel 并将 JPanel 包装在 JScrollPane
  • 您使用的是哪个组件?如果您使用 JTable 或 JList 等标准组件之一,您只需要设置自己的自定义选择模型。除非 Swing 组件有问题并且无法处理这样的选择,这是很有可能的。
  • @ATrubka 目前,我正在使用 JTextPane 来显示 DNA 序列。我计划实现一个 JTree 来显示序列中的特性并允许一些选择。我仍在重新学习摇摆舞,同时试图专注于我的研究。我刚搬到一个没有购买任何 DNA 软件的新实验室,我想我会尝试自己编写。大约 3 年没用过 Swing,绝对没有这么先进的东西。
  • 听起来是个有趣的项目。我希望我能做这样的事情。 :)

标签: java string swing


【解决方案1】:

您知道其他程序如何处理环状 DNA 片段的选择吗?您也许可以从其他软件中获得一些灵感,例如 Wikipedia 上此列表中的对齐查看器(支持环状 DNA):en.wikipedia.org/wiki/List_of_alignment_visualization_software

我认为明智的做法是先决定您希望 GUI 如何工作,然后再开始处理您的代码。否则,您可能会浪费大量时间来实施您最终不会使用的想法。

您甚至可以考虑为相同的测序数据提供圆形和线性视图,正如CLC Sequence Viewer 的截图所示:

【讨论】:

  • 该设计与我正在尝试做的非常相似。我将查看该列表,看看是否可以查看任何代码。这是一个缓慢的项目,因为它不是我的首要任务。
  • 上面显示的 CLC 序列查看器似乎是免费软件,但已关闭源代码。还有一个名为 Unipro UGENE 的工具似乎具有类似的功能(例如,请参见论坛讨论中的此屏幕截图:ugene.net/yabbfiles/Attachments/circ.jpg)。 UGENE 是开源的,用 C++ 编写;你可以在这里下载代码:ugene.net/download.html。祝你的项目好运!
  • 我放弃了使用 JTextPanel 并使用了普通的 JPanel,并使用图形功能绘制了文本。我能够设置显示为在文本上绘制的矩形的自定义选择,以及一个鼠标侦听器,以便您可以拖动选择边界。因为选择不是基于正常的文本选择,所以很容易让它们穿过质粒的末端。这也意味着用户可以一次选择多个部分,从而使他们能够轻松地跟踪多个序列。
  • 很高兴听到您能够创建解决方案。或许在此分享您的(部分)代码给将来有类似问题的人是个好主意?
  • 也许最终。代码很乱,没有很好的注释,老实说,大部分都是拼凑在一起的。新问题是让基因和其他特征画好。我可以制作像您图像中的黄色矩形一样的矩形,但它们重叠。我只是无法理解如何对矩形进行排序并将它们展开以避免重叠。
猜你喜欢
  • 2012-06-19
  • 1970-01-01
  • 1970-01-01
  • 2013-02-11
  • 1970-01-01
  • 2012-11-06
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多