我的框架中有几个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()
行,但是也不会这样做。
答案 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();