Tag: swing highlighter

JXTreeTable上的ColorHighlighter – 如果谓词为真,则更改选择颜色

我正在使用带有几个ColorHighlighters的JXTreeTable来更改包含特定值的行的背景颜色。 如果选择了一行,颜色将更改为SelectionBackground。 是否可以在没有完整的新渲染器的情况下根据谓词或颜色荧光笔更改选择背景颜色? 编辑:如果选择了一行并具有突出显示,则应该是另一种背景颜色,而不是突出显示的行。 SSCCE package testing; import java.awt.Color; import java.awt.Component; import javax.swing.JFrame; import javax.swing.JScrollPane; import org.jdesktop.swingx.JXTreeTable; import org.jdesktop.swingx.decorator.ColorHighlighter; import org.jdesktop.swingx.decorator.ComponentAdapter; import org.jdesktop.swingx.decorator.HighlightPredicate; import org.jdesktop.swingx.treetable.AbstractMutableTreeTableNode; import org.jdesktop.swingx.treetable.DefaultTreeTableModel; public class JXTreeTableDemo extends JFrame { public static void main(String[] args) { JXTreeTableDemo gui = new JXTreeTableDemo(); // get root node and 20 child nodes ArrayNode root = […]

如何在jtextarea中获取突出显示的文本

我有一些带有一些文字的jtextarea。 我使用java highligher来突出显示jtextarea上的一些文本。 我想用优化文本将该textarea的内容打印到另一个textarea。 那可能吗? 或者有没有办法只在jtextarea中获取突出显示的文本?

在jTextPane中更改所选文本的颜色

我正在使用JTextPane创建一个文本编辑器,允许用户更改所选文本的颜色。 但是当用户选择文本时,则选择更改颜色(例如,红色)的选项,文本不会显示为红色,直到文本被取消选中。 我尝试使用setSelectedTextColor来更改所选文本的颜色,但这不起作用,因为无论何时随后选择文本,都会将文本更改为红色。 有没有办法让选定的文字显示为实际颜色? 或者喜欢它在Word中的工作方式,它不是文本的实际颜色,但是当选择不同颜色的文本时,即使选择它们也会显示为不同的颜色。 我使用以下代码设置JTextPane和按钮,将所选文本更改为红色: JButton redButton = new JButton(new StyledEditorKit.ForegroundAction(“red”, Color.RED)); redButton.setFocusable(false); buttonPanel.add(redButton); JTextPane设置为内容类型HTML并使用HTMLEditorKit: p=new JTextPane(); p.setSize(300, 300); kit = new HTMLEditorKit(); p.setEditorKit(kit); p.setDocument(kit.createDefaultDocument()); p.setContentType(“text/html”); p.setEditable(true); 如果您需要更多源代码来理解这个问题,请告诉我。 谢谢!

从特定单词中删除突出显示 – Java

我想构建一个示例以从与我的应用的filter匹配的单词中删除高亮显示。 因此,我基于以下示例: public void removeHighlights(JTextComponent jTextArea) { Highlighter hilite = jTextArea.getHighlighter(); Highlighter.Highlight[] hilites = hilite.getHighlights(); for (int i = 0; i < hilites.length; i++) { if (hilites[i].getPainter() instanceof TextHighLighter) { hilite.removeHighlight(hilites[i]); } } } 此示例适用于删除文本区域的所有高亮显示。 例如,如果我有三个选中的单词而我取消选中一个框,则所有filter都将被删除,我只想删除未选中单词的高亮显示。是否有一种简单的方法来检查哪个单词与filter匹配? 或者我需要手动完成吗? 直到现在我才发现我的研究没什么成功的 提前致谢 最终编辑: 基于@camickr回答的逻辑为我工作: public void removeHighlights(JTextComponent jTextArea, String turnLightOff) { Highlighter hilite = jTextArea.getHighlighter(); Highlighter.Highlight[] hilites = […]

JTextPane突出显示问题

我一直试图在小文本编辑器中实现突出显示function的最后几天。 出于某种原因,我得到一个奇怪的结果: 给出的例子应该突出显示每个“dolor” – 第一次出现是正确找到并突出显示的,但下一次出现并没有。 这是我到目前为止编写的代码: import java.awt.Color; import java.awt.Dimension; import java.awt.event.MouseEvent; import java.awt.event.MouseListener; import javax.swing.JFrame; import javax.swing.JScrollPane; import javax.swing.JTextPane; import javax.swing.text.BadLocationException; import javax.swing.text.DefaultHighlighter; import javax.swing.text.DefaultHighlighter.DefaultHighlightPainter; import javax.swing.text.DefaultStyledDocument; /** * Highlighting created on 04.11.2013 * * Specification: */ public class Highlighting extends JFrame implements MouseListener { private JScrollPane scrollPane; private JTextPane textPane; private DefaultHighlighter highlighter; […]

在jTextField中设置hilighting颜色

我正在开发一个Java Swing应用程序。 此应用程序允许用户使用基本命令行。 例如,用户只需输入add “Something to be added.”即可添加事件add “Something to be added.” 。我想在用户输入此命令时突出显示add 。 任何人都可以实现jTextField。

如何在Java Swing TextArea中更改突出显示颜色? 并且,更改与突出显示位置对应的文本的开头

问题1:通过使用defaulthighlighter,我可以使聚焦线变为蓝色。 现在我想把它换成其他颜色。 有谁知道如何更改此参数? – – 解决了 问题2:pos是我想要突出显示的子字符串的起始索引。 我用setCaretPosition(pos); 更新显示内容。 但它总是出现在窗口的底部。 我想把它放在最顶层。 谁能告诉我如何处理? 我使用一个演示来显示我的问题: import java.awt.Color; import java.net.MalformedURLException; import javax.swing.JFrame; import javax.swing.JScrollPane; import javax.swing.JTextArea; import javax.swing.SwingUtilities; import javax.swing.text.BadLocationException; import javax.swing.text.DefaultHighlighter; public class Test { public static void main(final String[] args) throws MalformedURLException { SwingUtilities.invokeLater(new Runnable() { @Override public void run() { try { init(); } catch […]