使用biojava将文本文件读取到JTable的特定列的步骤

时间:2011-06-18 10:22:07

标签: java jtable biojava

这是典型的输入.txt文件(也称为fasta文件):

>contig00001  length=586   numreads=4
CGGGAAATTATCcGCGCCTTCACCGCCGCCGGTTCCACCGACGAACGGATACTGCGtGaa
ggCCGCGATCCCGTCggaCGGAAAaCGCCcTGGCCCGGGAaCATACCGTTCGGGCCGCCA
AGTGTTATAGCCGGACCACTTGTCAGAACATTTCCaaTCCGAAGATGTGAGTtCGGAAGg
TAAAAGCCCGACAAGTTGCGCGgTGAATTTACCTTtACcGCACGATATGCGTCCGTATTA
AaGAAAaGTTCGAAATTATCAGTAAGGCCGACCTGAAaGCTGACCGGGAGTTCAACAAAA
TCTGCATCACCcGGgTCACGGTCGAAATTGCTGTACGCGGCGCTGAACGTAAATTCACCC
TTTcTAAGGGTGTCGCcGTCGTAAACCGTAAaCAaGCCGGTAGCGCCGCCCATCGGGCCG
CCGGTACCAACCGTCGGTGCCGTGTTTCTtGCATCATTGTCCGATCGAGCGTTCTCGTCC
GCTTGTGCAAaTCCTGCAaTAGCTAACGTGAAAACGATCAGAGCTGTTGTAAATACTCTA
TAAGCGAGATTCATCACATTCCTCcGCCGAAATAAAAAGTTAATTt

>contig00002  length=554   numreads=4
TGCGCCAaCCGCGCTCTtCATAAaTGGGCACTGCTCCCGATGGCCgACTCGGGCGGTTCG
CCATGAGATCTTTGCCtACCcAGgAaCtCACcACCAAGTCTGATTGCTGTGTGTTTtCTT
CAAGTCCCTATTTCTATTCtCTTtAATGGAACCCGTAGGAAACCCGTGTAGGACGCGGGA
aCCGCACTTgAAGGGGGAGGCGCGGGGTACCGGtCCGGGAACGTACGGGTACCGGCGGGG
gAGGGGAGGGGGACCgCTCCGGGAAGGCCAGGGGACGGATTGGGGAAGGgCGGGTACCGA
AGCGGGgAAaTGGGggAaCcGGCGAGAGGGTTCCTCGCTAAGTGGGGGAAATaGGGGAAA
GGTTGACCAGTGGTtCCCcGCTCTCGTAACATGCCTCAGATAGCGCCATCCGCTGTACCT
GGtcaggtcGctggcaacttcggccgagcaggtgaacccgaaaggtgagggtcagtgtga
cacaccaaccgaacaccgacgaggcaagcgtaggagccggcgtggccgcgcccggcggcg
ctgaggactcctcg

可以找到读取序列的代码here

它给出了正确的输出,如下面的标签分隔所示:

contig00001   586   52.38
contig00002   554   62.45

问题是我在NetBeans中开发了一个由JTable组成的表,其中有5列,即:

"contigID","Description","Organism","Sequence_length","Gc_percentage" 

JTextArea。我想在JTable列中显示上述输出,而其他列保持为空;当我点击JTable中的'contig00001'时,{CGIGAAAT ......'中的相应序列应显示在JTextArea中。

我该怎么做?任何建议都将不胜感激。

2 个答案:

答案 0 :(得分:1)

一种方法是扩展AbstractTableModel,如Creating a Table Model中所述。

附录:通过聆听user selection,您可以确定选择了哪一行并相应地更新JTextArea

附录:由于数据检索可能会受到影响,SwingWorker提供了一种安全的方式来改变TableModel。这是一个简单的example

答案 1 :(得分:1)

我不确定你坚持的是什么。如果它正在向JTable添加数据,我会考虑创建一个DefaultTableModel对象,使用数组中正确的列标题字符串构造它,包含0行数据,然后在读取文件时添加数据行。 JTable教程应该可以帮助您完成所有这些工作。创建表模型后,可以通过setModel方法轻松将其添加到JTable中。