【问题标题】:Setting text color with a JColorChooser使用 JColorChooser 设置文本颜色
【发布时间】:2010-11-20 19:22:19
【问题描述】:

我正在尝试使用 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);
        }
    });

关于如何让它发挥作用的任何建议?还是有更好的方法?

谢谢

【问题讨论】:

    标签: java swing jtextpane


    【解决方案1】:

    getSelectedText() 只是返回一个包含所选文本的普通字符串;你不能用它来修改文本的属性。

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

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

    【讨论】:

    • 这非常适合设置所选文本的颜色,现在唯一的问题是我只能通过选择更多文本并将其设置为不同的颜色来设置颜色(而不仅仅是选择一个新的颜色和打字)。关于如何补救的任何建议?
    • @user485418:查看我编辑的答案。它实际上比以前更简单,我相信它应该适用于选定和键入的文本。 :)
    猜你喜欢
    • 2016-02-02
    • 2016-09-18
    • 2013-03-27
    • 2019-03-22
    • 2015-11-06
    • 2016-03-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多