在java swing中,无需单击或按下保存按钮即可保存文本字段中的文本
如何保存在textField中输入的文本而无需在java swing中单击或按下保存按钮。您需要使用在java swing中,无需单击或按下保存按钮即可保存文本字段中的文本,java,swing,Java,Swing,如何保存在textField中输入的文本而无需在java swing中单击或按下保存按钮。您需要使用DocumentFilter,并使用以下命令将其添加到JTextField((AbstractDocument)textbox.getDocument()).setDocumentFilter(filter)以添加它。以下是一个示例aMCVE: import java.awt.FlowLayout; import javax.swing.JFrame; import javax.swing.JPa
DocumentFilter
,并使用以下命令将其添加到JTextField
((AbstractDocument)textbox.getDocument()).setDocumentFilter(filter)代码>以添加它。以下是一个示例aMCVE:
import java.awt.FlowLayout;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JTextField;
import javax.swing.text.AbstractDocument;
import javax.swing.text.AttributeSet;
import javax.swing.text.BadLocationException;
import javax.swing.text.DocumentFilter;
public class Example extends JFrame {
JTextField textbox = new JTextField(" ", 20);
public Example() {
JPanel panel = new JPanel(new FlowLayout(FlowLayout.CENTER));
DocumentFilter filter = new DocumentFilter() {
@Override
public void insertString(DocumentFilter.FilterBypass fb, int offset, String string,
AttributeSet attr) throws BadLocationException {
super.insertString(fb, offset, string, attr);
System.out.println("Inserted!");
}
public void remove(DocumentFilter.FilterBypass fb, int offset, int length)
throws BadLocationException {
super.remove(fb, offset, length);
System.out.println("removed!");
}
public void replace(DocumentFilter.FilterBypass fb, int offset, int length, String text,
AttributeSet attrs) throws BadLocationException {
super.replace(fb, offset, length, text, attrs);
System.out.println("replaced!");
}
};
((AbstractDocument) textbox.getDocument()).setDocumentFilter(filter);
panel.add(textbox);
add(panel);
setLocationRelativeTo(null);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
pack();
setVisible(true);
}
public static void main(String[] args) {
new Example();
}
}
您需要使用
DocumentFilter
并使用以下命令将其添加到JTextField
:((AbstractDocument)textbox.getDocument()).setDocumentFilter(filter)代码>以添加它。以下是一个示例aMCVE:
import java.awt.FlowLayout;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JTextField;
import javax.swing.text.AbstractDocument;
import javax.swing.text.AttributeSet;
import javax.swing.text.BadLocationException;
import javax.swing.text.DocumentFilter;
public class Example extends JFrame {
JTextField textbox = new JTextField(" ", 20);
public Example() {
JPanel panel = new JPanel(new FlowLayout(FlowLayout.CENTER));
DocumentFilter filter = new DocumentFilter() {
@Override
public void insertString(DocumentFilter.FilterBypass fb, int offset, String string,
AttributeSet attr) throws BadLocationException {
super.insertString(fb, offset, string, attr);
System.out.println("Inserted!");
}
public void remove(DocumentFilter.FilterBypass fb, int offset, int length)
throws BadLocationException {
super.remove(fb, offset, length);
System.out.println("removed!");
}
public void replace(DocumentFilter.FilterBypass fb, int offset, int length, String text,
AttributeSet attrs) throws BadLocationException {
super.replace(fb, offset, length, text, attrs);
System.out.println("replaced!");
}
};
((AbstractDocument) textbox.getDocument()).setDocumentFilter(filter);
panel.add(textbox);
add(panel);
setLocationRelativeTo(null);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
pack();
setVisible(true);
}
public static void main(String[] args) {
new Example();
}
}
文本应在何时保存?在什么条件下?您可以在什么时候使用onFocusLost@andreThompsoninserted@BartonFocusLost text在我必须单击save按钮时保存使用Luke!文本应在何时保存?在什么条件下?您可以在什么时候使用onFocusLost@andreThompsoninserted@BartonFocusLost text在我必须单击save按钮时保存使用Luke!