У меня в настоящее время есть JTextPane, который будет отображать текст, входящий от различных потоков. Способ, которым может сказать пользователь, которые передают текст потоком, прибыл из, то, что текст от каждого потока имеет различный Стиль к нему. Существует ли способ сделать Стиль, который скроет текст так, чтобы я мог отфильтровать различные части текста?
Спасибо.
Вы можете (как бы) сымитировать это, используя 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);
}
Длина невидимой строки выше, похоже, даже не влияет на пространство между видимыми компонентами. Но будьте уверены, оно все равно есть, что подтверждает копирование из панели.