2010-06-15 47 views
1

我目前有一個JTextPane,它將顯示來自不同流的文本。用戶可以分辨文本來自哪個流的方式是每個流的文本都具有不同的Style。有沒有辦法讓一個Style隱藏文本,以便我可以過濾出不同的文本片段?是否可以通過樣式隱藏文本?

謝謝。

回答

2

可以(種)假它通過使用0字體大小和匹配組件的背景:

public static void main(String[] args) throws Exception { 
    JTextPane pane = new JTextPane(); 

    Style regular = StyleContext.getDefaultStyleContext().getStyle(StyleContext.DEFAULT_STYLE); 
    Style invisible = pane.getStyledDocument().addStyle("invisible", regular); 
    StyleConstants.setFontSize(invisible, 0); 
    StyleConstants.setForeground(invisible, pane.getBackground()); 
    pane.getStyledDocument().insertString(pane.getStyledDocument().getLength(), 
      "Hello, ", null); 
    pane.getStyledDocument().insertString(pane.getStyledDocument().getLength(), 
      "cruel ", pane.getStyledDocument().getStyle("invisible")); 
    pane.getStyledDocument().insertString(pane.getStyledDocument().getLength(), 
      "world!", null); 
    pane.setPreferredSize(new Dimension(500, 500)); 

    JFrame frame = new JFrame(); 
    frame.setLayout(new BorderLayout()); 
    frame.add(pane, BorderLayout.CENTER); 
    frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 
    frame.pack(); frame.setVisible(true); 
} 

無形字符串的長度以上甚至不似乎有一個影響上可見組件之間的空間。但請放心,它仍然存在,因爲從窗格複製將證明。

+0

謝謝,那就是我一直在尋找的。 – Sandro 2010-06-15 17:09:26

相關問題