2010-06-15 4 views
1

현재 다른 스트림에서 들어오는 텍스트를 표시하는 JTextPane이 있습니다. 사용자가 텍스트의 출처를 알 수있는 방법은 각 스트림의 텍스트가 서로 다른 스타일을 사용한다는 것입니다. 다른 텍스트 조각을 걸러 낼 수 있도록 텍스트를 숨길 스타일을 만드는 방법이 있습니까?스타일을 통해 텍스트를 숨길 수 있습니까?

감사합니다.

답변

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

관련 문제