您可能知道,如果您有一个文本字段并且向其添加了一个ActionListener,它将只收听Enter按钮的按键。但是,我想让我的ActionListener监听文本中的更改。所以基本上我有这个:
public static JPanel mainPanel() {
JPanel mainp = new JPanel();
JTextArea areap = new JTextArea("Some text in the textarea");
JTextField fieldp = new JTextField("Edit this");
areap.setEditable(false);
fieldp.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
// TODO Auto-generated method stub
if(//change in textfield, for instance a letterpress or space bar)
{
//Do this
}
}
});
mainp.add(areap);
mainp.add(fieldp);
return mainp;
}
我可以通过任何方式收听文本中的更改(如actionPerformed事件中记录的那样)?
答案 0 :(得分:21)
答案 1 :(得分:2)
是的,但什么是文档监听器以及如何使用它?你并没有真正回答这个问题。
我的应用程序用户界面中有一个JTextField。当用户对其进行任何更改时,我希望检查附近的JCheckBox。目的是告诉应用程序使用输入的值。用户经常在那里输入值,但如果他们没有明确告诉应用程序使用它,那么应用程序会继续忽略它。我不应该“训练”用户,而应该遵循最不惊讶的原则并自动检查“使用此值”框。
但我该如何倾听改变呢?难道你们不能告诉我简单的方法,而不是“教育我”文件听众吗?
答案 2 :(得分:0)
文档是java swing用于在JTextField中存储文本的机制。 DocumentListeners是实现DocumentListener接口的对象,因此您可以列出文档中的更改,即JTextField文本的更改。
要使用document和documentlistener功能,如上所述扩展您的类(可能但不一定是JFrame),以便它实现DocumentListener接口。实现接口的所有方法(很可能你的java ide可以半自动地为你做.FYI,DocumentListener接口有三个方法,一个用于插入字符(在文本字段中),一个用于删除字符,一个用于更改属性。当添加字符(第一个)或删除(第二个)时,您将要实现前两个。要获取更改的文本,您可以向文档询问文本,或者更简单地调用myTextField.getText()。
C' est tout!
菲尔·特洛伊