gpt4 book ai didi

java - 是否可以通过样式隐藏文本?

转载 作者:行者123 更新时间:2023-11-30 05:12:04 25 4
gpt4 key购买 nike

我目前有一个 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);
}

上面不可见字符串的长度似乎对可见组件之间的空间没有影响。但请放心,它仍然在那里,从 Pane 中复制即可证明。

关于java - 是否可以通过样式隐藏文本?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3046660/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com