我尝试使用jslider在三个jtextfields中设置文本。我的条件是滑块应该适用于textfield_1,只有当textfield_1获得焦点时,其他两个textfield也是如此。当我尝试对其他textfield使用相同的滑块时,只有第一个文本字段的值发生了更改。
期待有价值的建议,谢谢。
JSlider slider;
JTextField tf;
tf.addFocusListener(new FoucusListener(){
public void foucusGained(FocusEvent fe){
slider.addChangeListener(new ChangeListener()){
public void stateChanged(ChangeEvent ce){
JSlider slider =(JSlider)ce.getSource();
if(slider.getValueisAdjusting())
tf.setText(String.valueOf(slider.getValue()))
}
});
});
1条答案
按热度按时间omhiaaxx1#
基本思想是您需要知道上次选择的字段。问题是,当你选择滑块时,它会触发一个焦点获得事件。。。
最简单的方法就是使用
FocusListener
只注册到文本字段,并保留对最后选定字段的引用。当滑块更改时,您只需与最后选定的字段(如果不是)交互
null
)