使用 JColorChooser 设置文本颜色

发布于 2024-10-04 01:40:11 字数 514 浏览 4 评论 0原文

我正在尝试使用 JTextPane 制作文本编辑器,但在设置所选文本颜色时遇到问题。这是最好的办法(但是,显然,不起作用):

    JMenuItem button = new JMenuItem("Set Color");
    toolbar.add(button);

    button.addActionListener(new ActionListener( ) {
        public void actionPerformed(ActionEvent e) {
            Color c = JColorChooser.showDialog(frame,"Choose a color", getBackground());
            textPane.getSelectedText().StyledEditorKit.ForegroundAction("color",c);
        }
    });

关于如何让它发挥作用有什么建议吗?或者更好的方法?

谢谢

I'm trying to make a text editor with a JTextPane, but i'm having trouble with setting the selected texts color. Here is the best could come up with (but, obviously, not working):

    JMenuItem button = new JMenuItem("Set Color");
    toolbar.add(button);

    button.addActionListener(new ActionListener( ) {
        public void actionPerformed(ActionEvent e) {
            Color c = JColorChooser.showDialog(frame,"Choose a color", getBackground());
            textPane.getSelectedText().StyledEditorKit.ForegroundAction("color",c);
        }
    });

Any suggestions on how to get that to work? Or a better method of doing it?

Thanks

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

梦在深巷 2024-10-11 01:40:11

getSelectedText() 仅返回包含所选文本的普通字符串;您不能使用它来修改文本的属性。

我首先使用 SimpleAttributeSetStyleConstants 生成颜色属性,然后将其应用到文本的选定部分:

SimpleAttributeSet attr = new SimpleAttributeSet();
StyleConstants.setForeground(attr, c);
textPane.setCharacterAttributes(attr, false);

getSelectedText() just returns a normal string containing the selected text; you cannot use it to modify the attributes of the text.

I would start by using SimpleAttributeSet and StyleConstants to generate the colour attribute, then apply it to the selected portion of your text:

SimpleAttributeSet attr = new SimpleAttributeSet();
StyleConstants.setForeground(attr, c);
textPane.setCharacterAttributes(attr, false);
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文