java是否可以使用JSlider控制多个JTextfield?
我尝试使用JSlider在三个JTextField中设置文本。 我的条件是,滑块应该适用于textfield_1,仅当textfield_1获得焦点时,其他两个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 楼答案
基本思想是您需要知道上次选择的字段。问题是,当您选择滑块时,它将触发聚焦事件
最简单的想法是使用只注册到文本字段的
FocusListener
,并保持对最后选定字段的引用当滑块更改时,您只需与最后选定的字段交互(如果它不是
null
)