2012-09-18 45 views
3

我正在做的事是讓JTextPane在JPanel中佔用儘可能多的空間。 對於我UpdateInfoPanel我使用:JTextPane JFrame中Janel中的JScrollPane中

public class UpdateInfoPanel extends JPanel { 
private static final long serialVersionUID = 257125249175323679L; 

private JTextPane textPane; 

public UpdateInfoPanel(){ 
    textPane = new JTextPane(); 
    textPane.setBackground(Color.DARK_GRAY); 
    textPane.setEditable(false); 
    textPane.setMargin(null); 
    textPane.setContentType("text/html"); 
    textPane.setText("<html><body style=\"font: Arial; color: white; padding: 5px; padding-top: 0;\"><h1 style=\"padding-top: 0;\">News</h1></body></html>"); 
    JScrollPane scrollPane = new JScrollPane(textPane); 
    add(scrollPane); 
    setBackground(Color.DARK_GRAY); 
    textPane.setBorder(BorderFactory.createLineBorder(Color.BLACK)); 
} 
} 

而對於我的框架我只是創造了這樣的一個實例,並把它放在BorderLayout.CENTER。 目前這是它的外觀。白色邊框是滾動窗格,黑色是文本窗格。 我想要做的是將邊框放在面板的邊緣。 ![] [1]

+0

我喜歡暗灰色的外觀 – Adam

+0

爲了更快地獲得更好的幫助,請發佈[SSCCE](http://sscce.org/)。你的問題是什麼? –

+0

我的問題是如何使邊界動態伸展到兩邊? – Chris

回答

5

您是否正在設置面板佈局?

setLayout(new BorderLayout()); 
    add(scrollPane,BorderLayout.CENTER); 

如果你不需要textpane的邊界做textPane.setBorder(null);
不要延長JPanel。您可以創建正如您創建JTextPane

+0

我學會這樣做的方式是始終擴展JPanel,然後將其添加到我的主框架中的特定佈局。有沒有更好的方法來做到這一點? – Chris

+0

*「..總是擴展JPanel ..」*唯一需要擴展面板的時間是當您打算使用佈局定位組件時自定義渲染(例如BG圖像)。在其他情況下,只保留對標準面板的引用。如果它內部的渲染是自定義的,那麼在圖像中顯示(顯示在標籤中)。 –