所以我习惯建立一个JTree
加入DefaultMutableTreeNode
的模型,但现在我有很多条目属于1 JTree
有没有更简单的方法来做到这一点可能像你做一个丝毫JList
在那里你可以指定一个String table[] = {};
JTree,很多条目
"<html> <b>Shield Hardners</b> </html>",
" Ballistic Deflection Array",
" Explosion Dampening Array",
" Heat Dissipation Array",
" Photon Scattering Array",
"<html> <b>Hangar Arrays</b> </html>",
" Corporate Hangar Array",
"<html> <b>Ship Maintnance Bays</b> </html>",
" Capital Ship Maintenance Array",
" Ship Maintenance Array",
"<html> <b>Silos</b> </html>",
" Biochemical Silo",
" Catalyst Silo",
" Coupling Array",
" General Storage",
" Hazardous Chemical Silo",
" Silo",
"<html> <b>Assembly Arrays</b> </html>",
" Advanced Large Ship Assembly Array",
" Advanced Medium Ship Assembly Array",
" Advanced Small Ship Assembly Array",
" Ammunition Assembly Array",
" Capital Ship Assembly Array",
" Component Assembly Array",
" Drone Assembly Array",
" Efficient Equipment Assembly Array",
" Large Ship Assembly Array",
" Medium Ship Assembly Array",
" Rapid Equipment Assembly Array",
" Small Ship Assembly Array",
"<html> <b>Mobile Laboratory</b> </html>",
" Advanced Mobile Laboratory",
" Drug Lab",
" Mobile Laboratory",
"<html> <b>Moon Harvester</b> </html>",
" Moon Harvesting Array",
" Moon Harvesting Array II",
"<html> <b>Reactor Arrays</b> </html>",
" Biochemical Reactor Array",
" Complex Reactor Array",
" Medium Biochemical Reactor Array",
" Simple Reactor Array",
"<html> <b>Refining Arrays</b> </html>",
" Intensive Refining Array",
" Medium Intensive Refining Array",
" Refining Array",
"<html> <b>Sov Modules</b> </html>",
" Cynosural Generator Array",
" Cynosural System Jammer",
" Jump Bridge",
" System Scanning Array",
"<html> <b>Electronic Warfare</b> </html>",
" Dread Guristas Ion Field Projection Battery",
" Guristas Ion Field Projection Battery",
" Ion Field Projection Battery",
" Dread Guristas Phase Inversion Battery",
" Guristas Phase Inversion Battery",
" Phase Inversion Battery",
" Dread Guristas Spatial Destabilization Battery",
" Guristas Spatial Destabilization Battery",
" Spatial Destabilization Battery",
" Dread Guristas White Noise Generation Battery",
" Guristas White Noise Generation Battery",
" White Noise Generation Battery",
" Sensor Dampening Battery",
" Serpentis Sensor Dampening Battery",
" Shadow Serpentis Sensor Dampening Battery",
" Stealth Emitter Array",
" Serpentis Warp Disruption Battery",
" Shadow Warp Disruption Battery",
" Warp Disruption Battery",
" Serpentis Warp Scrambling Battery",
" Shadow Warp Scrambling Battery",
" Warp Scrambling Battery",
" Angel Stasis Webification Battery",
" Domination Stasis Webification Battery",
" Stasis Webification Battery",
"<html> <b>Energy Neutralizers</b> </html>",
" Blood Energy Neutralizing Battery",
" Dark Blood Energy Neutralizing Battery",
" Energy Neutralizing Battery",
" Sansha Energy Neutralizing Battery",
" True Sansha Energy Neutralizing Battery",
"<html> <b>Hybrid Battery</b> </html>",
" Large Blaster Battery",
" Serpentis Large Blaster Battery",
" Shadow Large Blaster Battery",
" Medium Blaster Battery",
" Serpentis Medium Blaster Battery",
" Shadow Medium Blaster Battery",
" Small Blaster Battery",
" Serpentis Small Blaster Battery",
" Shadow Small Blaster Battery",
" Large Railgun Battery",
" Serpentis Large Railgun Battery",
" Shadow Large Railgun Battery",
" Medium Railgun Battery",
" Serpentis Medium Railgun Battery",
" Shadow Medium Railgun Battery",
" Small Railgun Battery",
" Serpentis Small Railgun Battery",
" Shadow Small Railgun Battery",
"<html> <b>Laser Battery</b> </html>",
" Large Pulse Laser Battery",
" Blood Large Pulse Laser Battery",
" Dark Blood Large Pulse Laser Battery",
" Sansha Large Pulse Laser Battery",
" True Sansha Large Pulse Laser Battery",
" Medium Pulse Laser Battery",
" Blood Medium Pulse Laser Battery",
" Dark Blood Medium Pulse Laser Battery",
" Sansha Medium Pulse Laser Battery",
" True Sansha Blood Medium Pulse Laser Battery",
" Small Pulse Laser Battery",
" Blood Small Pulse Laser Battery",
" Dark Blood Small Pulse Laser Battery",
" Sansha Small Pulse Laser Battery",
" True Sansha Blood Small Pulse Laser Battery",
" Large Beam Laser Battery",
" Blood Large Beam Laser Battery",
" Dark Blood Large Beam Laser Battery",
" Sansha Large Beam Laser Battery",
" True Sansha Blood Large Beam Laser Battery",
" Medium Beam Laser Battery",
" Blood Medium Beam Laser Battery",
" Dark Blood Medium Beam Laser Battery",
" Sansha Medium Beam Laser Battery",
" True Sansha Blood Medium Beam Laser Battery",
" Small Beam Laser Battery",
" Blood Small Beam Laser Battery",
" Dark Blood Small Beam Laser Battery",
" Sansha Small Beam Laser Battery",
" True Sansha Blood Small Beam Laser Battery",
"<html> <b>Missile Battery</b> </html>",
" Cruise Missile Battery",
" Dread Guristas Cruise Missile Battery",
" Guristas Cruise Missile Battery",
" Torpedo Battery",
" Dread Guristas Torpedo Battery",
" Guristas Torpedo Battery",
" Citadel Torpedo Battery",
" Dread Guristas Citadel Torpedo Battery",
" Guristas Citadel Torpedo Battery",
"<html> <b>Projectile Battery</b> </html>",
" Large AutoCannon Battery",
" Angel Large AutoCannon Battery",
" Domination Large AutoCannon Battery",
" Medium AutoCannon Battery",
" Angel Medium AutoCannon Battery",
" Domination Medium AutoCannon Battery",
" Small AutoCannon Battery",
" Angel Small AutoCannon Battery",
" Domination Small AutoCannon Battery",
" Large Artillery Battery",
" Angel Large Artillery Battery",
" Domination Large Artillery Battery",
" Medium Artillery Battery",
" Angel Medium Artillery Battery",
" Domination Medium Artillery Battery",
" Small Artillery Battery",
" Angel Small Artillery Battery",
" Domination Small Artillery Battery"
所以这是直接从我的老JList
的。该JTree
应该是这样的:
- 盾Hardners <父 :包含“HTML”标签应该是一个父节点和一个白衣缩进应是轻而易举的
- >>>弹道偏转阵列<儿童
- >>>爆炸润版阵列<儿童
因此,它应该是这样的 线
我已经在一个文件puting这一点,并分析它,并打印出像这样的节点尝试:
public class Env {
public static void main(String[] args)
{
try {
Scanner input = new Scanner(new File("data.txt"));
String line;
String sub;
while(input.hasNextLine())
{
line = input.nextLine();
String subline = line.replace('"', ' ').substring(11).replace("</b> </html> ,", " ").trim().replace(" ", "_");
if(line.contains("<html>")){
System.out.println("DefaultMutableTreeNode " + subline + " = new DefaultMutableTreeNode(" + line.replace(",", " ").trim() + ");");
}
}
} catch (Exception e) {}
}
}
之前,我写完代码有没有做这个简单的方法。
为什么不把它打成HTML,然后让自己的魔法/转换到正确的数据结构。 – 2012-01-01 19:23:28
@OmarIthawi:因为它看起来不是一个有效的HTML文件,而是在某些行上带有一些HTML标记的逗号分隔文件。 – 2012-01-01 19:25:02
当您想要在JList中使用数组时,您仍然必须创建一个循环来将条目添加到数组中。所以在这里你的代码有一个循环,直接将条目添加到TreeModel。你为什么认为会有一个更简单的方法?直接将数据添加到模型会更有效率(更短?),因为您不需要使用数组的额外开销。但要回答你的问题,没有接受数组的构造函数。 – camickr 2012-01-01 19:28:18