脚本执行父线程package com.trash.gui;import java.util.HashMap;
import java.util.LinkedList;
import java.util.regex.Pattern;public class MainThread {

private HashMap<String, SubBean> map = new HashMap<String, SubBean>();

private boolean started = false;

public MainThread(String gua){
analyze(gua);
}

/**
 * 分析命令数据
 * @param gua
 */
private void analyze(String gua){
gua.replace("\r", "");
String commands[] = gua.split("\n");
LinkedList<String> subcommands=null;
for (String command:commands){
if (isThreadCommnad(command)){
subcommands = new LinkedList<String>();
SubBean subBean = new SubBean();
subBean.setCommands(subcommands);
subBean.setSubThread(new SubThread(subcommands,this));
map.put(command.substring(1, command.length()-1), subBean);
}else if (subcommands!=null){
subcommands.add(command);
}
}
}

private void start(){
started = true;
SubBean bean = map.get("main");
if (bean!=null){
SubThread subThread = bean.getSubThread();
if (subThread!=null){
if (!subThread.isStarted()){
subThread.start();
}
}
}
}

private void stop(){
started = false;
}

/**
 * 检查是否是线程命令
 * @param str
 * @return
 */
private static boolean isThreadCommnad(String str) {
return Pattern.compile("\\[[\\w\\W]*\\]").matcher(str).matches();
} public boolean isStarted() {
return started;
}

}脚本执行子线程
package com.trash.gui;import java.util.HashMap;
import java.util.LinkedList;
import java.util.regex.Pattern;public class MainThread {

private HashMap<String, SubBean> map = new HashMap<String, SubBean>();

private boolean started = false;

public MainThread(String gua){
analyze(gua);
}

/**
 * 分析命令数据
 * @param gua
 */
private void analyze(String gua){
gua.replace("\r", "");
String commands[] = gua.split("\n");
LinkedList<String> subcommands=null;
for (String command:commands){
if (isThreadCommnad(command)){
subcommands = new LinkedList<String>();
SubBean subBean = new SubBean();
subBean.setCommands(subcommands);
subBean.setSubThread(new SubThread(subcommands,this));
map.put(command.substring(1, command.length()-1), subBean);
}else if (subcommands!=null){
subcommands.add(command);
}
}
}

private void start(){
started = true;
SubBean bean = map.get("main");
if (bean!=null){
SubThread subThread = bean.getSubThread();
if (subThread!=null){
if (!subThread.isStarted()){
subThread.start();
}
}
}
}

private void stop(){
started = false;
}

/**
 * 检查是否是线程命令
 * @param str
 * @return
 */
private static boolean isThreadCommnad(String str) {
return Pattern.compile("\\[[\\w\\W]*\\]").matcher(str).matches();
} public boolean isStarted() {
return started;
}

}