2016-10-15 69 views
-2

我正在創建一個文本編輯器,並且想要對選定行進行計數,如下圖所示。JTextArea - 對選定行進行計數

這是我創建的界面,直到現在。

enter image description here

例如,如果被選擇的那些兩行,我需要一種方法來存儲(在這個例子2)中選擇的行數代入變量。有沒有辦法做到這一點?

如果您需要任何一段代碼來查看,我會添加。

+0

這不是我接近的建議!我建議你減去「行號」,而不是選定文本的開始/結束偏移量。你在哪裏修改了過去在「偏移」中的方法。 – camickr

+2

*「JTextField計數選定的行」*文本字段只有一行,因此它具有全部或部分選擇的行的計數將爲0或1.我希望你實際上是指'JTextArea',但期望如果發佈[mcve],可以轉化爲知識。請在將來發佈一個MCVE。 –

+0

@AndrewThompson請再次檢查標題,它說「JTextArea」,而不是「JTextField」 – Linksx

回答

3

查看Text Utilities中的getLineAtCaret()方法。這將得到插入的行號(這在這裏不會有幫助)。

因此,您需要修改代碼以接收偏移量作爲參數。然後,您可以傳遞文本組件的getSelectionStart()getSelectionEnd()值,並使用這些值返回行號。然後,一旦知道了每一行的行號,就可以從結束行號中減去起始行號,以便爲您提供所選的行數。

您還可以查看Text Component Line Number博客條目,瞭解用於編輯器的行號組件。

+0

我一直在想如何實現你所說的,我想我找到了一種方法。請你可以檢查編輯它看看是否是正確的方式?因爲大多數情況下,我會選擇正確的行數,但有時我會得到錯誤的值,例如,如果選擇4行,它說我選擇了3或5行,但並非總是如此。 – Linksx