所以,我完成了一个数独解算器,但我想改进它。要做到这一点,我需要从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;
}
我并不完全理解你的要求,但我相信这就是你想要的:
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方法,而不是全部在同一行中完成