gpt4 book ai didi

java - 限制 JTextPane 中消息的字符数

转载 作者:行者123 更新时间:2023-12-01 16:03:19 26 4
gpt4 key购买 nike

我有一个 JTextPane,我想限制用户只能输入 200 个字符的消息。因此,我有一个 KeyListener,它监听 Keyevent 并检查 KeyEvent。如果消息超过 200 个字符,则会显示 JOptionPane.showMessageDialog 以向用户显示警告。这一点工作得很好。

问题是,一旦显示警告并且用户单击“确定”,他只能在 JTextPane 中使用 Backspace 键。我希望用户能够使用删除键、箭头键、Shift 和控制键来选择要删除的文本。

有人可以建议一种实现这一目标的方法吗?

// Add Key Listener to Send Field
chatEditorKeyListener = new KeyAdapter()
{
public void keyPressed(KeyEvent e)
{
checkKeystroke(e);
}
};



private void checkKeystroke(KeyEvent e)
{
//Check if enter or back space is entered
if( e.getKeyCode() != KeyEvent.VK_BACK_SPACE && e.getKeyCode() != KeyEvent.VK_ENTER )
{
// user is typing, so test the size as we go and report when we hit boundary
String text = messageBox.getText();
if(text.length() > maxMessageSize)
{
showAlertBox();
}
}
else if ( e.getKeyCode() == KeyEvent.VK_ENTER)
{
//User sending the message
e.consume();
String text = messageBox.getText();
if(text.length() > maxMessageSize)
{
showAlertBox();
}

最佳答案

拖放。复制和粘贴。辅助功能输入法。这种方法不合适的原因有很多。

而是通过文档限制内容。通过 AbstractDocument.setDocumentFilter 设置 DocumentFilter,这样您就不需要子类化或实现文档。

弹出窗口对于用户体验来说不太好。更加微妙。不允许更多的字符就可以了(请不要发出嘟嘟声!)。可能会像 twitter 和 stackoverflow 那样添加倒计时。

关于java - 限制 JTextPane 中消息的字符数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3254819/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com