0
我已經閱讀了JTextPane上的許多線程,這讓我開始使用JTextPane編寫一個小文本編輯器,但是在項目中間幾乎摺疊起來!請能有人向我解釋如何,我可以將一個HTML字符INT一個textpane像如何在JTextPane中插入html特殊字符
我的問題是,如果我已經鍵入一些文字,然後我用settext
馬託插入特殊字符上同一行文本,然後插入特殊字符,而前一個文本消失。我怎樣才能阻止這種情況發生?
我已經閱讀了JTextPane上的許多線程,這讓我開始使用JTextPane編寫一個小文本編輯器,但是在項目中間幾乎摺疊起來!請能有人向我解釋如何,我可以將一個HTML字符INT一個textpane像如何在JTextPane中插入html特殊字符
我的問題是,如果我已經鍵入一些文字,然後我用settext
馬託插入特殊字符上同一行文本,然後插入特殊字符,而前一個文本消失。我怎樣才能阻止這種情況發生?
你還沒有說當你想打電話setText
。如果你想這樣做響應按鈕點擊,那麼你只需要:
grabFocus
將焦點和輸入插入符號放回到文本窗格中。的代碼應該是這樣的:
JButton btnAdd = new JButton("add");
jPanel1.add(btnAdd);
btnAdd.addActionListener(new ActionListener(){
@Override public void actionPerformed(ActionEvent arg0) {
String text = pane.getText();
pane.setText(text + "¢");
pane.grabFocus();
}
});
如果您正在使用HTMLDocument的工作(你還沒有發佈完整的代碼,因此目前尚不清楚你在做什麼,產生HTML)你可以這樣做:
pane = new JTextPane();
jPanel1.add(pane);
final HTMLEditorKit kit = new HTMLEditorKit();
final HTMLDocument doc = new HTMLDocument();
pane.setEditorKit(kit);
pane.setDocument(doc);
...
btnAdd.addActionListener(new ActionListener(){
@Override public void actionPerformed(ActionEvent arg0) {
int start = pane.getSelectionStart();
try {
// add a span containing the desired element inside the current paragraph or other containing element
kit.insertHTML(doc, start, "<span>¢</span>", 0, 0, HTML.Tag.SPAN);
} catch ...
pane.grabFocus();
}
});
http://stackoverflow.com/questions/12902529/jtextpane-jtextfield-strange-behaviour-with-rare-characters –
讀到這裏[JTextPane的設置內容類型HTML和使用字符串助洗劑](HTTP://計算器。 COM /問題/ 9071389 /設置-的JTextPane到內容類型的HTML和使用字符串建設者) – Braj