2013-04-27 32 views
1

我創建了一個具有固定寬度的側邊欄的GUI,我想添加一個Scrollable文本,將文本插入到JTextPane中,所有這些都放入到JPanel PanelList中。不依賴於文本長度的可滾動文本

問題是,它會自動調整到最長的字符串的長度,所以可滾動總​​是顯示整個文本 - 這不是我正在尋找的。

有了這個代碼:

public PanelList(int size){ 

     text = new JTextPane(); 
     text.setEditable(false); 
     text.setText("IwantthisStringtobeScrollable\n" + 
       "ThisStringis30characterslength"); 
     JScrollPane scrollpane = new JScrollPane(text); 
     scrollpane.setHorizontalScrollBarPolicy(ScrollPaneConstants.HORIZONTAL_SCROLLBAR_AS_NEEDED); 
     scrollpane.setVerticalScrollBarPolicy(ScrollPaneConstants.VERTICAL_SCROLLBAR_AS_NEEDED); 
     this.add(scrollpane); 

} 

用什麼方法做我必須調用,從而只顯示20個字符的JTextPane的,並且能夠滾動?

編輯:滾動面板顯示的寬度是參數大小。

+0

你不希望滾動條出現?或者你想要他們嗎? – Apurv 2013-04-27 17:03:08

+0

我確實需要滾動條 – RecuencoJones 2013-04-27 17:06:04

+0

我認爲你需要'JTextPane'到滾動窗格的視圖端口 – Apurv 2013-04-27 17:08:22

回答

3

做什麼方法我要引用,從而只顯示20個字符的JTextPane的

一個JTextPane不支持這個概念。

如果您只顯示簡單文本(並且不需要多種字體或文本顏色),那麼您可以使用JTextArea。然後你會這樣做:

JTextArea textArea = new JTextArea(5, 20); 
JScrollPane scrollPane = new JScrollPane(textArea); 

這將創建一個文本區域,其中包含5行20列。列不準確,因爲每個字符的寬度都不相同。如果您只需要20個字符,則需要使用等寬字體。

+0

謝謝,JTextArea解決了我的問題,我不知道它的構造器是否允許設置可滾動視口的大小。非常感謝。 – RecuencoJones 2013-04-28 09:23:54