简体   繁体   English

当另一个JTextField从ResultSet获取数据时,如何在JTextField中设置SetText?

[英]How to SetText in JTextField when Another JTextField get data from ResultSet?

Table: 表:

Name       | Gender      |
--------------------------
John       | Man         |

Jennifer   | Woman       |

Jack       | Man         |

When JTextField1 setText 'Jhon' then JTextField2 Automatically SetText Men etc. JTextField1 setText'Jhon'时, JTextField2自动SetText Men等。

Help me plis. 请帮我。

You need to use DocumentListener for that purposes. 为此,您需要使用DocumentListener Examine next simple example: 检查下一个简单的例子:

import java.awt.BorderLayout;

import javax.swing.JFrame;
import javax.swing.JTextField;
import javax.swing.event.DocumentEvent;
import javax.swing.event.DocumentListener;
import javax.swing.text.BadLocationException;

public class Example {

    public static void main(String ... s){
        JFrame f = new JFrame();
        f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        JTextField field1 = new JTextField(5);

        final JTextField field2 = new JTextField(5);

        field1.getDocument().addDocumentListener(new DocumentListener() {

            @Override
            public void removeUpdate(DocumentEvent e) {
                validate(e);
            }

            @Override
            public void insertUpdate(DocumentEvent e) {
                validate(e);
            }

            @Override
            public void changedUpdate(DocumentEvent e) {
                validate(e);
            }

            private void validate(DocumentEvent e) {
                try {
                    String text = e.getDocument().getText(0, e.getDocument().getLength());
                    if(text.equals("Jhon")){
                        field2.setText("Men");
                    } else {
                        field2.setText("");
                    }
                } catch (BadLocationException e1) {
                    e1.printStackTrace();
                }
            }
        });
        f.add(field1,BorderLayout.WEST);
        f.add(field2,BorderLayout.EAST);
        f.pack();
        f.setVisible(true);
    }
}

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM