Java 如何完全禁用JTextPane的文本突出显示?
请告诉我如何禁用Java 如何完全禁用JTextPane的文本突出显示?,java,swing,user-interface,highlight,jtextpane,Java,Swing,User Interface,Highlight,Jtextpane,请告诉我如何禁用JTextPane的文本突出显示。 我的JTextPane是半透明的,因此突出显示错误。但是没有突出显示是好的 我尝试了以下方法: DefaultHighlighter highlighter = (DefaultHighlighter) chatTextPane.getHighlighter(); highlighter.removeAllHighlights(); chatTextPane.setHighlighter(null); chatTextPane.setSe
JTextPane
的文本突出显示。
我的JTextPane
是半透明的,因此突出显示错误。但是没有突出显示是好的
我尝试了以下方法:
DefaultHighlighter highlighter = (DefaultHighlighter) chatTextPane.getHighlighter();
highlighter.removeAllHighlights();
chatTextPane.setHighlighter(null);
chatTextPane.setSelectedTextColor(new Color(0,0,0,0));
chatTextPane.setSelectionColor(new Color(0,0,0,0));
chatTextPane.setSelectionStart(0);
chatTextPane.setSelectionEnd(0);
chatTextPane.setCaret(new NoTextSelectionCaret(chatTextPane));
// with:
private class NoTextSelectionCaret extends DefaultCaret
{
public NoTextSelectionCaret(JTextComponent textComponent)
{
setBlinkRate( textComponent.getCaret().getBlinkRate() );
textComponent.setHighlighter( null );
}
@Override
public int getMark()
{
return getDot();
}
}
以及带有highlighter.getDrawsLayeredHighlights()的内容代码>我甚至都不记得了
谢谢 由于Swing的工作方式,高亮显示显示了一些不受欢迎的瑕疵,我将JTextPane包装在另一个透明颜色的面板中 要消除工件,请将JTextPane包装为一个 然后: 并将AlphaContainer添加到框架中。如果AlphaContainer要包含在另一个组件中,请将另一个组件设置为
setOpaque(false)代码>
然后可以设置chatterxtpane.setHighlighter(null)代码>如果需要,禁用高亮显示
有关更多详细信息,请参见提供的您的意思是不允许用户使用鼠标或键盘在JTextPane
中选择文本?换句话说,,如果用户在JTextPane
中的某些文本上拖动鼠标,则该文本将不会突出显示?为什么不将突出显示的颜色与JTextPane背景相同,这样您就根本看不到它?我的JTextPane是半透明的-有关可能的问题和一些解决方案,请参阅。@camickr谢谢!我能想出来out@Abra这就是我的意思。我的问题是突出显示文本时出现的不受欢迎的工件
public class AlphaContainer extends JComponent
{
private JComponent component;
public AlphaContainer(JComponent component)
{
this.component = component;
setLayout( new BorderLayout() );
setOpaque( false );
component.setOpaque( false );
add( component );
}
/**
* Paint the background using the background Color of the
* contained component
*/
@Override
public void paintComponent(Graphics g)
{
g.setColor( component.getBackground() );
g.fillRect(0, 0, getWidth(), getHeight());
}
}
AlphaContainer ac = new AlphaContainer(chatTextPane);