Действительно ли возможно Скрыть текст через Стиль?

У меня в настоящее время есть JTextPane, который будет отображать текст, входящий от различных потоков. Способ, которым может сказать пользователь, которые передают текст потоком, прибыл из, то, что текст от каждого потока имеет различный Стиль к нему. Существует ли способ сделать Стиль, который скроет текст так, чтобы я мог отфильтровать различные части текста?

Спасибо.

1
задан Sandro 15 June 2010 в 15:32
поделиться

1 ответ

Вы можете (как бы) сымитировать это, используя 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);
}

Длина невидимой строки выше, похоже, даже не влияет на пространство между видимыми компонентами. Но будьте уверены, оно все равно есть, что подтверждает копирование из панели.

2
ответ дан 2 September 2019 в 23:45
поделиться
Другие вопросы по тегам:

Похожие вопросы: