如何使JTextArea不可选

时间:2012-09-22 17:24:45

标签: java swing

我想显示描述节点价值的文本区域(图形项目) 但每当我选择文本时它会变得混乱,所以我希望它是不可选择的! 这是代码:

public class TransparentTextArea extends JTextArea {

String texte;

public TransparentTextArea(String texte) {
    this.setLineWrap(true);
    this.setWrapStyleWord(true);
    this.texte = texte;
    this.setBackground(new Color(255, 0, 9, 0));
    this.setFont(new Font("Serif", Font.ITALIC, 24));
    this.setEditable(false);
    this.setText(texte);
    this.setSize(new Dimension(200,100 ));
  } 
}

THX

3 个答案:

答案 0 :(得分:17)

这是一个老问题,但对于那些仍然关心的人来说,禁用JTextArea并不是很有帮助,主要是因为前景的灰色。最好的办法是使荧光笔无效:

setHighlighter(null)

答案 1 :(得分:2)

首先,我知道这是一个非常古老的帖子,但我真的不得不回答,因为我有同样的问题并找到答案,并且给出的答案不是100%。

Stelios说我们设置了setHighlighter(null);,但它仍然可以选择,我们甚至可以复制粘贴。并且没有必要setEnabled(false);,特别是当外观和感觉很糟糕时

我发现答案非常简单。

jtextPane.setEditable( false );
jtextPane.getCaret().deinstall( jtextPane );

答案 2 :(得分:-3)

设置文本区域的文本后,将取消选择所有文本。像这样:

Thread t = new Thread(new Runnable() {
    while (true) {
        textArea.setText(textArea.getText());
    }
});
t.start();