如何使 j 編輯器窗格中的某個文本行在 JScroll 窗格中可見?private JEditorPane myEditorPane = new JEditorPane();private JScrollPane myScrollPane = new JScrollPane(myEditorPane);myEditorPane.setContentType("text/html");myEditorPane.setText("<html>" + getMyString(x) + "</html>");myEditorPane.repaint();getMyString 得到一個包含許多行的長字符串,以 \n 分隔。該計(jì)劃有2個小組。然后,程序沿著上述面板中的行向下移動,并為每個行添加該行中的文本下劃線,并在另一個面板中顯示相關(guān)圖像。每個圖像都查看 1 秒鐘,然后繼續(xù)為下一行文本加下劃線并顯示下一個圖像。我讓它向下并依次加下劃線,顯示每行帶下劃線的文本的相關(guān)圖像。但滾動窗格每次都會跳到起點(diǎn)。我想我必須在視口上使用滾動矩形可見,但是我如何找出JEditorPAne中部分字符串的矩形是什么?
1 回答

慕尼黑8549860
TA貢獻(xiàn)1818條經(jīng)驗(yàn) 獲得超11個贊
我已經(jīng)能夠通過直接調(diào)用滾動條上的 setValue 來操縱滾動條位置。
myScrollPane.getVerticalScrollBar().setValue()
問題是,要設(shè)置什么值?你能假設(shè)文本行是一樣的嗎?如果它們包裝,事情就會變得復(fù)雜。我將假設(shè)他們沒有,并且每行的高度是相同的,因?yàn)樽煮w和大小是相同的。然后,您需要知道當(dāng)前顯示的行的索引是什么,以及行的總計(jì)數(shù)。
獲得該值后,通過將行索引乘以編輯器高度而不是行數(shù),將行索引轉(zhuǎn)換為編輯器 Y 位置,并進(jìn)行相應(yīng)的設(shè)置。
myScrollPane.getVerticalScrollBar().setValue( (int) indexOfCurrentLine * myEditorPane.getHeight() / countOfLines );
顯然,如果沒有SSCCE,就無法測試其中任何一個。
添加回答
舉報(bào)
0/150
提交
取消