我遇到了一個問題:我想在JEditorPane中使用內部錨點<a name="x">
和鏈接<a href="#x">
。跳轉到JEditorPane中的內部錨點
窗格的內容不是從資源加載的,而是作爲字符串動態創建並可用的。
如何讓我的JEditorPane滾動到正確的位置? (在示例中它應該滾動到頂部) 偵聽器只捕獲null,這會增加該問題。
這裏是我的SSCCCE:
public static void main(final String[] args) {
final JFrame f = new JFrame();
f.setDefaultCloseOperation(WindowConstants.DISPOSE_ON_CLOSE);
f.setTitle("JEditorPane Test");
final String text = "<html><body><a name='link1'>test</a>some text<br /><br /><br /><br /><br /><br /><br /><br /><br /><br />some more text<br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br />some more text<a href='#link1'>jump to top</a></body></html>";
final JEditorPane ep = new JEditorPane();
ep.setContentType("text/html");
ep.setText(text);
ep.setEditable(false);
ep.addHyperlinkListener(new HyperlinkListener() {
@Override public void hyperlinkUpdate(final HyperlinkEvent pE) {
if (HyperlinkEvent.EventType.ACTIVATED == pE.getEventType())
System.out.println("ep link click: " + pE.getURL());
}
});
final JScrollPane sp = new JScrollPane(ep);
f.add(sp);
f.setBounds(200, 200, 400, 400);
f.setVisible(true);
}
哦,是的,這並不明顯,但JEditorPane控制了它的繞圈JScrollPane進行滾動。 – JayC667
順便說一句,有沒有什麼辦法可以標記爲已解決?除了手動編輯標題? – JayC667
是的,選擇你自己的答案爲接受(或解決問題的答案),這是如何標記爲在StackOverflow中解決。 – PhoneixS