因此,我习惯于通过将JTree添加到它的模型中来构建DefaultMutableTreeNode,但是现在我有很多属于1 JTree的条目,是否有一种更短的方法来实现这一点,比如您可以在JList中指定一个String table[] = {};。
"<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应该如下所示:包含"html“标记的行应该是父节点,而缩进的行应该是子节点。
所以应该是这样的:
< Parent
我尝试将其放入文件中并对其进行解析,然后输出如下所示的节点:
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) {}
}
}在我写完这段代码之前,有一种更简单的方法可以做到这一点。
发布于 2012-01-01 19:39:05
我只能考虑使用正则表达式来“简化”字符串替换,但即使这也是一个意见问题。
import java.util.Scanner;
public class TestFoo {
private static final String FILE_NAME = "data.txt";
private static final String REGEX = "</?html>|</?b>|\"|,";
public static void main(String[] args) {
Scanner scan = new Scanner(new File(FILE_NAME));
while (scan.hasNextLine()) {
String line = scan.nextLine();
String newLine = line.replaceAll(REGEX, "").trim();
if (line.contains("html")) {
System.out.println("Default Mut: " + newLine);
} else {
System.out.println("\t" + newLine);
}
}
}
}当然,您需要尝试/捕捉,不应该忽略catch块。这也将删除引号中的逗号,因此并不理想。有可在线下载的Java库,允许对逗号分隔的文件进行非常干净的解析。
发布于 2012-01-01 19:34:40
通过为子节点添加else来解析数据没有捷径问题,如下面所示。
https://stackoverflow.com/questions/8694880
复制相似问题