Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/392.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何在JTextArea中使用荧光灯_Java_Highlight_Jtextarea_Bold_Italic - Fatal编程技术网

Java 如何在JTextArea中使用荧光灯

Java 如何在JTextArea中使用荧光灯,java,highlight,jtextarea,bold,italic,Java,Highlight,Jtextarea,Bold,Italic,我有一个笔记本类,我一直在工作。我现在面临两个问题: 1:特定文本的粗体和斜体 我的工具栏上有两个图标,当你点击时,它们会使文本变为粗体或斜体。所有这些都很好,但是,它总是选择文档中的所有文本,而不是特定选择的文本。是否有一种方法可以使用鼠标左键的蓝色突出显示,以粗体或斜体显示特定文本?这是粗体抽象动作的代码。斜体看起来完全一样,除了斜体 Action Bold = new AbstractAction("Bold", new ImageIcon("bold.png")) { publi

我有一个笔记本类,我一直在工作。我现在面临两个问题:

1:特定文本的粗体和斜体 我的工具栏上有两个图标,当你点击时,它们会使文本变为粗体或斜体。所有这些都很好,但是,它总是选择文档中的所有文本,而不是特定选择的文本。是否有一种方法可以使用鼠标左键的蓝色突出显示,以粗体或斜体显示特定文本?这是粗体抽象动作的代码。斜体看起来完全一样,除了斜体

Action Bold = new AbstractAction("Bold", new ImageIcon("bold.png"))
{
    public void actionPerformed(ActionEvent e)
    {
        if(bolded == false)
        {
            area.setFont(area.getFont().deriveFont(Font.BOLD));
            bolded = true;
        }
        else
        {
            area.setFont(area.getFont().deriveFont(Font.PLAIN));
            bolded = false;
        }

    }
};
文本上方的2个高亮灯 我想添加一个实际的荧光笔,它只会将用户选择的某些单词组涂成黄色。我已经阅读了Oracle的页面,但我仍然不太确定如何使用它。我看到很多人搜索特定单词并以这种方式突出显示的例子,但我不想突出显示这些特定单词。我希望用户决定突出显示哪个文本

Action Highlight = new AbstractAction("Highlight", new ImageIcon("highlighter.png"))
{
    public void actionPerformed(ActionEvent e) throws BadLocationException
    {
        Highlighter highlighter = area.getHighlighter();
        HighlightPainter painter = new DefaultHighlighter.DefaultHighlightPainter(Color.RED);
        highlighter.addHighlight(0 , 6, painter);
    }
};
上面的代码是我从其他一些在线教程中收集到的,但是,BadLocationException在抽象操作中无法正确编译,因此这看起来不是一个可行的选项


感谢您的帮助

actionPerformed
不会抛出任何已检查的异常。 只需删除异常并在方法中捕获它

public void actionPerformed(ActionEvent e)
{
  try {
    Highlighter highlighter = area.getHighlighter();
    HighlightPainter painter = new DefaultHighlighter.DefaultHighlightPainter(Color.RED);
    highlighter.addHighlight(0 , 6, painter);
  catch(throws BadLocationException ex) {
    ex.printStackTrace();
  }
}

}

使用
JTextArea
,更改字体将影响整个文本。请参见本教程中有关文本组件的内容,并选择一个更相关的: