我一直在做一個聊天程序幾天,現在我徹底難倒了如何創建一個好看的可點擊文本而不使用HTML。我試圖使用HTML,但有非常奇怪的結果(見下文)。所以我現在只使用 基本文本而不是text/html。如何將可點擊的文本插入到JTextPane中?
我添加可點擊文本的第一次嘗試是使用與文本一起插入Component
小號JTextPane
的能力。它插入並完美地工作,但它是垂直偏移,看起來非常糟糕。我試圖混淆setAlignmentY
,但沒有運氣將組件與文本對齊。
JLabel l = new JLabel(test);
l.setFont(this.getFont());
l.setCursor(new Cursor(Cursor.HAND_CURSOR));
l.setBackground(Color.RED); //Just so i could see it better for testing
l.addMouseListener(new FakeMouseListener());
this.insertComponent(l);
我使用JTextPane
和使用doc.insertString
插入文本。我使用系統行分隔符跳過行,所以一行可以包含多個doc.insertString
(這是我在嘗試使用text/html時遇到的麻煩)。
就像快速註釋一樣,您可以在保存文本的文本窗格中嵌入一個組件,並使該組件響應點擊(某些偵聽器模型,取決於組件)。 – user1803551
@ user1803551是的,這就是我已經嘗試過。問題在於組件是垂直偏移的,看起來非常糟糕。它的作品,看起來很糟糕。 – TacoB
噢,代碼中的'this'是一個'JTextPane'。那麼HTML有什麼不好呢?也許你可以張貼一張你想要的樣子,因爲我無法說出你所說的「看起來很糟糕」。 – user1803551