作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
当我在 jtextarea 中打开文件时。我使用 textArea.setEditable(false) 将 textarea 设置为不可编辑,但是当我按下该键时,如何在 jpanel 文件中显示消息是只读的。
谢谢。
最佳答案
不要使用 setEditable(false),而是使用 TextFilter:
import javax.swing.JFrame;
import javax.swing.JOptionPane;
import javax.swing.JScrollPane;
import javax.swing.JTextArea;
import javax.swing.WindowConstants;
import javax.swing.text.AbstractDocument;
import javax.swing.text.AttributeSet;
import javax.swing.text.BadLocationException;
import javax.swing.text.DocumentFilter;
public class TextAreaTest {
/**
*
* @param args
*/
public static void main(String[] args) {
final JFrame frm = new JFrame("Text field test");
final JTextArea area = new JTextArea("Some text here", 20, 50);
((AbstractDocument) area.getDocument()).setDocumentFilter(new DocumentFilter() {
/**
* {@inheritDoc}
*/
@Override
public void remove(FilterBypass fb, int offset, int length) throws BadLocationException {
JOptionPane.showMessageDialog(frm, "Area read only");
}
/**
* {@inheritDoc}
*/
@Override
public void insertString(FilterBypass fb, int offset, String string, AttributeSet attr) throws BadLocationException {
JOptionPane.showMessageDialog(frm, "Area read only");
}
/**
* {@inheritDoc}
*/
@Override
public void replace(FilterBypass fb, int offset, int length, String text, AttributeSet attrs) throws BadLocationException {
JOptionPane.showMessageDialog(frm, "Area read only");
}
});
frm.add(new JScrollPane(area));
frm.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
frm.pack();
frm.setVisible(true);
}
}
关于java - 当文本区域不可编辑时按下按键如何在 jpanel 中显示只读消息文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26252614/
我是一名优秀的程序员,十分优秀!