태그 -> HTML 파서 - 사용자 정의 태그 (BB와 Markdown 사이의 뭔가, 예 : [b]
또는 [#RRGGBB]
)를 사용자가 입력하면 HTML로 구문 분석되므로 [#FF0000]red text[/#]
이 <span style='color:#FF0000;'>red text</strong>
으로 바뀌고 HTML이있는 JTextPane에 배치됩니다. 스타일.
모든 사용자 태그 및 HTML 매장의 HashMap과 같은 구문 분석 :
public static String parseBBToHTML(String text) {
String html = text;
Map<String,String> bbMap = new HashMap<String , String>();
bbMap.put("\\[b\\]", "<strong>");
bbMap.put("\\[/b\\]", "</strong>");
...
bbMap.put("\\[color=(.+?)\\]", "<span style='color:$1;'>");
bbMap.put("\\[/color\\]", "</span>");
for (Map.Entry entry: bbMap.entrySet()) {
html = html.replaceAll(entry.getKey().toString(), entry.getValue().toString());
}
return html;
}
그리고 반환 단지 다른 후 하나의 문자를 입력 한 내용을 다른 방법으로 애니메이션 효과와 함께 JTextPane의에서 .setText()에 사용되는 값 그들 사이에 일시 중지합니다.
모두 잘 작동하지만, 지금은 한 가지 생각하고 있어요 :이 같은 빈 HTML 태그와 애니메이션을 입력에서 일시 정지를 모방하고있어
: "!"<!!!!!!!!!!>
그래서 10 그들 사이의 20ms에서 일시 중지와 함께 나에게 200ms의 일시 정지를 준다. 나는이 방법으로 "태그를 일시 정지"고 형성하고있어 (그 인수는 INT했지만, 지금은 문자열을 사용하는 이유는, 볼) :
public static String pause(String ms){
String pausedText = "";
int time = Integer.parseInt(ms);
for (int i = 0; i < (time/animationSpeed); i++) {
pausedText = pausedText + "!";
}
return "<"+pausedText+">";
}
나는 2000ms에 일시 정지에 대한 [!2000]
같은 태그를 사용합니다. 그래서 저는 다음과 같이 파서 문자열을 넣었습니다 :
bbMap.put("\\[\\!(.+?)\\]", Dialogue.pause("$1"));
... 작동하지 않았습니다. Dialogue.pause 문자 그대로 문자열 인 "$ 1"을 제공하며, 구문 분석의 가치는 $1
이 아닙니다.
$1
을 인수로 사용하여 "일시 중지 태그"를 만들고이를 텍스트에 넣을 수 있습니까?
무슨 이득이 클래스 : Dialogue.pause –
일시 정지 경우'entry.getValue의 toString()()'수익을 무엇을.? – Thomas
Dialogue.pause는 내 게시물에 있습니다. ** public static String pause (String ms) ** 등등. – Lemis