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

时间:2014-01-04 18:42:15

标签: java swing jtextfield resultset

表:

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

Jennifer   | Woman       |

Jack       | Man         |

JTextField1 setText'Jhon'然后JTextField2自动SetText Men等。

帮助我。

1 个答案:

答案 0 :(得分:0)

出于此目的,您需要使用DocumentListener。检查下一个简单的例子:

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);
    }
}