程序启动时,使用默认文本在JComponents上调用侦听器

时间:2016-03-13 05:57:43

标签: java listener

我的框架中有几个JTextFields,每个CaretListeners(也许我不应该使用CaretListeners?)。当我点击或修改文本字段时(在程序启动后),我可以逐步调试调试器并看到CaretListener被正确调用。

我的情况:

我有一些默认文本,我想在程序首次启动时根据默认文本更新其他变量。

我的问题:

如何在程序首次启动时调用这些侦听器?使用我当前的代码,我必须明确单击JTextField以调用侦听器。

    my_txtfield = new JTextField();
    my_txtfield.setText("prime_numbers.rsc");
    my_txtfield.addCaretListener(e -> {
        if (my_txtfield.getText().equals("")) key_gen.rsc_filename = null;
        else key_gen.rsc_filename = my_txtfield.getText();
    });

我也尝试在监听器lambda之后移动.setText()行,但是也不会这样做。

here's a picture snippit

1 个答案:

答案 0 :(得分:0)

你可以使用计时器,然后检查一下。 (javax.swing.Timer中)

  ActionListener doThis = new ActionListener(){
    public void actionPerformed(ActionEvent e){
       // check the JTextFields in here.
       ...
    }
}

}; Timer tim = new Timer(1000,doThis); tim.start();