Bou*_*ess 2 java swing jtextpane
输入X后,我不需要输入任何字符.我需要在输入X字符后发出一声嘟嘟声.我知道在用户按下回车后如何执行此操作,但我需要在用户按Enter键之前执行此操作.我在Oracle网站上发现的方法是将DocumentSizeFilter添加到JTextPane.我不能让它在他们结束时通知用户(在他们按下回车之前它不起作用).这是我的样本.
public class EndCycleTextAreaRenderer extends JTextPane
implements TableCellRenderer {
private final int maxNumberOfCharacters = 200;
public EndCycleTextAreaRenderer() {
StyledDocument styledDoc = this.getStyledDocument();
AbstractDocument doc;
doc = (AbstractDocument)styledDoc;
doc.setDocumentFilter(new DocumentSizeFilter(maxNumberOfCharacters ));
}
Run Code Online (Sandbox Code Playgroud)
覆盖insertString文档的方法,JTextPane以便在达到最大值后不再插入任何字符.
例如:
JTextPane textPane = new JTextPane(new DefaultStyledDocument() {
@Override
public void insertString(int offs, String str, AttributeSet a) throws BadLocationException {
if ((getLength() + str.length()) <= maxNumberOfCharacters) {
super.insertString(offs, str, a);
}
else {
Toolkit.getDefaultToolkit().beep();
}
}
});
Run Code Online (Sandbox Code Playgroud)
更新:
您可以按如下方式更改课程:
public class EndCycleTextAreaRenderer extends JTextPane implements TableCellRenderer {
private final int maxNumberOfCharacters = 200;
public EndCycleTextAreaRenderer() {
setStyledDocument(new DefaultStyledDocument() {
@Override
public void insertString(int offs, String str, AttributeSet a) throws BadLocationException {
if ((getLength() + str.length()) <= maxNumberOfCharacters) {
super.insertString(offs, str, a);
} else {
Toolkit.getDefaultToolkit().beep();
}
}
});
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4705 次 |
| 最近记录: |