作爲我在Java swing中實現的GUI設計的一部分,我需要用戶能夠選擇樹的部分或子部分,如表示爲字符串的結構。在Swing GUI中選擇嵌套的子表達式
例如,如果我是顯示下面的表達式,((a|b)|(c|d))
用戶將需要能夠選擇以下任何 (a|b)
,或(c|d)
整個事情((a|b)|(c|d))
的。
理想情況下,我希望他們能夠通過鍵盤箭頭進行導航,通過嵌套的子表達式上下移動,並在他們到達他們想要的子表達式時按下回車鍵。然而,如果只有鼠標點擊才能做到這一點,那也是可以接受的。
我遇到的主要問題是嵌套組件。我可以很容易地使整個表達式可選,但我不知道如何使用SWING組件來選擇子表達式。根據我的研究,Swing不允許以我需要的方式嵌套文本區域的標籤,所以我正在尋找任何替代方法。
任何幫助或建議將不勝感激。
我建議避免使用原始字符串,而是使用基於樹的模型來處理數據。然後你可以使用樹視圖來顯示它。 http://docs.oracle.com/javase/tutorial/uiswing/components/tree.html –
那麼數據存儲在一個自定義的對象很像一棵樹,它只需要顯示給用戶一個字符串(我'已經編輯了這個問題更清楚)。只要我可以將外觀定製爲水平而非垂直,樹視圖看起來很有前景。 –
您可以製作只讀的JTextField,捕獲按鍵和鼠標點擊,處理箭頭鍵,並使用HTML文本「((a | b)...」突出顯示「(...)」。 –