当前位置: 首页 > 知识库问答 >
问题:

在DocumentListener中到达JTextField

时才俊
2023-03-14

所以,我完成了一个数独解算器,但我想改进它。要做到这一点,我需要从documentListener中找到我的更好的jTextField。我正在使用documentListener实时读取我的betterJTextFields,问题是在insertUpdate(DocumentEvent e)中。

我需要到达DocumentEvent发生的betterJTextfield。例如,如果输入无效,betterJTextfield将变红等。

如果您需要知道,我将所有betterJTextfield放在矩阵中。每个字段都处理数独中的一个数字。

@Override
    public void insertUpdate(DocumentEvent e) {

       //Removed code which checks if the input in the betterJTextField is fine. 

    }

JFormattedTextfield扩展JTextField

public class betterJTextField extends JFormattedTextField {
private int row;
private int column;

public betterJTextField(Format format, int row, int column) {
    super(format);
    this.row = row;
    this.column = column;
    // TODO Auto-generated constructor stub
}

public int getRow() {
    return row;
}

public int getColumn() {
    return column;
}

共有1个答案

步兴德
2023-03-14

我并不完全理解你的要求,但我相信这就是你想要的:

private static class RedDocumentListener implements DocumentListener {
    private JTextField textField;

    public RedDocumentListener(JTextField textField) {
        this.textField = textField;
    }
    @Override
    public void insertUpdate(DocumentEvent e) {
        textField.setBackground(Color.red);
    }
    @Override
    public void removeUpdate(DocumentEvent e) {
        textField.setBackground(Color.red);
    }
    @Override
    public void changedUpdate(DocumentEvent e) {
        textField.setBackground(Color.red);
    }
}
 类似资料:
  • 尝试在JTextField被更新时获取其值(插入字符、删除字符、更改字符),然后设置其值。 我遇到了“试图在通知中变异”的例外情况,导致我: 但是,决不能从文档侦听器中修改文本组件的内容。如果这样做,程序可能会死锁。相反,您可以使用格式化的文本字段或提供文档过滤器。从这里开始 我正在使用文档过滤器将JTextField的字符数限制为12,但我不知道如何在不使用文档侦听器的情况下检测JTextFie

  • 问题内容: 我使用a 来处理文档中的任何更改。而用户键入我想删除的内容JTextPane并插入 自定义文本。无法在中更改文档,而是在此处说一个解决方案:在Java的使用文档侦听器时,但我 问题答案: 实际上仅对更改通知有用,决不能用于修改文本字段/文档。 而是使用 检查这里的例子 费耶 您问题的根源是在文档更新时通知。尝试修改文档(除了可能导致无限循环),将文档置于无效状态,因此是异常 更新了一个

  • 我试图做的是防止用户在我的输入中输入空字符串。现在,用户只能输入数字。然而,没有什么能阻止他们将文本字段留空。我想限制他们在程序空白时按我的按钮启动程序。 现在,我的文本字段最初是空白的,按钮最初是灰色的。但当我输入一些东西时,按钮保持灰色。请记住,所有这些代码都在构造函数中。

  • 我有一个文本字段,当用户插入一定数量的字符时,程序应该将其放入JTable并清除文本字段,但它会为

  • 我正在尝试使用DocumentListener实现制作一个单独的类来检查天气TextFields是否为空,以便可以添加到多个JTextFeilds。我已经创建了DocumentListener实现的类并添加到TextFields。如果有人帮我解决这个问题,我应该很高兴。 提前谢谢。

  • 问题内容: 我需要这样做:将值更改侦听器更改为JTextField 我想Condemwnci的解决方案,但我得到的是错误的路线: 在我的情况是: 就我而言,我想更新Jtable中的行,所以我的方法将是这样的: 我在Linux ubuntu 11.10上使用Eclipse(如果有的话)。 编辑: 我不明白为什么,但是它可以通过以下方式工作: 然后改写Implements方法,而不是全部在同一行中完成