我正在創建一個文本編輯器,並且想要對選定行進行計數,如下圖所示。JTextArea - 對選定行進行計數
這是我創建的界面,直到現在。
例如,如果被選擇的那些兩行,我需要一種方法來存儲(在這個例子2)中選擇的行數代入變量。有沒有辦法做到這一點?
如果您需要任何一段代碼來查看,我會添加。
我正在創建一個文本編輯器,並且想要對選定行進行計數,如下圖所示。JTextArea - 對選定行進行計數
這是我創建的界面,直到現在。
例如,如果被選擇的那些兩行,我需要一種方法來存儲(在這個例子2)中選擇的行數代入變量。有沒有辦法做到這一點?
如果您需要任何一段代碼來查看,我會添加。
查看Text Utilities中的getLineAtCaret()
方法。這將得到插入的行號(這在這裏不會有幫助)。
因此,您需要修改代碼以接收偏移量作爲參數。然後,您可以傳遞文本組件的getSelectionStart()
和getSelectionEnd()
值,並使用這些值返回行號。然後,一旦知道了每一行的行號,就可以從結束行號中減去起始行號,以便爲您提供所選的行數。
您還可以查看Text Component Line Number
博客條目,瞭解用於編輯器的行號組件。
我一直在想如何實現你所說的,我想我找到了一種方法。請你可以檢查編輯它看看是否是正確的方式?因爲大多數情況下,我會選擇正確的行數,但有時我會得到錯誤的值,例如,如果選擇4行,它說我選擇了3或5行,但並非總是如此。 – Linksx
這不是我接近的建議!我建議你減去「行號」,而不是選定文本的開始/結束偏移量。你在哪裏修改了過去在「偏移」中的方法。 – camickr
*「JTextField計數選定的行」*文本字段只有一行,因此它具有全部或部分選擇的行的計數將爲0或1.我希望你實際上是指'JTextArea',但期望如果發佈[mcve],可以轉化爲知識。請在將來發佈一個MCVE。 –
@AndrewThompson請再次檢查標題,它說「JTextArea」,而不是「JTextField」 – Linksx