2010-05-06 97 views
1

我有一個非常簡單的Swing GUI,只有一個JTetxtArea。我想以編程方式選擇使用文本的一部分:Swing:以編程方式選擇文本

textArea.select(startSelection,endSelection); 

這項工作。但是,只要我添加一些其他組件的GUI我沒有看到選擇了

frame.getContentPane().add(button);  
frame.getContentPane().add(textArea); 
textArea.select(startSelection,endSelection); 

我懷疑布點的GUI中,一些事件導致文本就被撤銷。我對嗎?任何人都可以提出解決方案嗎?

我的目標是讓程序顯示文本,並允許用戶輸入開始和結束選擇位置,並在這兩個位置之間出現選擇。謝謝。

+0

難道你不能確保textArea.select在幀被佈局之後被觸發嗎? – ninesided 2010-05-06 17:09:10

+0

其實,我給了一個簡單的例子。我有一個GUI組件,並且select()的調用發生在它內部。我怎麼知道幀的佈局? – 2010-05-06 17:35:48

回答

4

文本選擇僅在文本組件具有焦點時才顯示。

文本組件還支持使用getHighlighter()。addHighlight()方法「高亮顯示」。在這種情況下,高亮顯示組件是否具有焦點。

如果您需要更多幫助,請發送您的SSCCE來證明問題。

+0

這確實解決了問題!謝謝!!! – 2010-05-09 10:30:22

0

如果您真正想要的只是選擇,而不是突出顯示(其行爲有所不同),則可以使用JTextComponent.getCaret().setSelectionVisible(true)

相關問題