[英]Document listener for multiple text fields
I have the following code: 我有以下代码:
private void filter2method() {
filterR.getDocument().addDocumentListener(new DocumentListener() {//currently the document listener is set for textfield called filterR1
@Override
public void insertUpdate(DocumentEvent e) {
newFilter();
}
@Override
public void removeUpdate(DocumentEvent e) {
newFilter();
}
@Override
public void changedUpdate(DocumentEvent e) {
newFilter();
}
private void newFilter() {
RowFilter <DefaultTableModel, Object>rf =null;
List<RowFilter<Object,Object>> rfs =
new ArrayList<RowFilter<Object,Object>>();
ArrayList textAL = new ArrayList();
String text = filterR.getText();
textAL.add(text);
String text1 = filterR1.getText();
textAL.add(text1);
String text2 = filterR2.getText();
textAL.add(text2);
try {
for (int i = 0; i < textAL.size(); i++) {
rfs.add(RowFilter.regexFilter("(?i)" + textAL.get(i), 2, 6, 11));
}
rf = RowFilter.andFilter(rfs);
} catch (java.util.regex.PatternSyntaxException e) {
return;
}
sorter.setRowFilter(rf);
} }
);
}
Currently the document listener is set to the textfield filterR but i want the listener to also include filterR1 and filterR2 as i have a search filter further down in the code that searches textfield filterR1 and filterR2 ie a combined filter search. 目前,文档侦听器设置为textfield filterR,但我希望侦听器也包含filterR1和filterR2,因为我在搜索文本字段filterR1和filterR2的代码中有一个向下的搜索过滤器,即组合过滤器搜索。
How do i change my document listener to cover more than just 1 textfield? 如何更改我的文档侦听器以覆盖多个文本字段?
Well, you could assign the DocumentListener
to a variable 好吧,您可以将DocumentListener
分配给一个变量
DocumentListener docListener = new DocumentListener() {
...
};
And the use it for all your textfields 并将其用于所有文本字段
filterR.getDocument().addDocumentListener(docListener);
filterR1.getDocument().addDocumentListener(docListener);
filterR2.getDocument().addDocumentListener(docListener);
... ...
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.