我刚开始使用java :)。
我的问题是:
我想做一个带有JSlider的图形用户界面,然后滑块移动,我想让JTextField中的一个数字发生变化。我尝试了很多东西,但总是出错。
如果我尝试更新图形用户界面信息,我总是得到一个错误,但如果我使用System.out.println打印更改的滑块的值,我不会得到一个错误。为什么会这样呢?
这是我的代码片段:
ATSTUMAS_SLIDER = new JSlider(0, 10000, 0);
ATSTUMAS_SLIDER.setLocation(150, 375);
ATSTUMAS_SLIDER.setSize(450,50);
ATSTUMAS_SLIDER.setMajorTickSpacing(2500);
ATSTUMAS_SLIDER.setMinorTickSpacing(250);
ATSTUMAS_SLIDER.setPaintTicks(true);
ATSTUMAS_SLIDER.setPaintLabels(true);
PANE.add(ATSTUMAS_SLIDER);
ATSTUMAS_SLIDER.addChangeListener(new ChangeListener(){
@Override public void stateChanged(ChangeEvent e)
{
if (ATSTUMAS_SLIDER.getValueIsAdjusting()){
int a = ATSTUMAS_SLIDER.getValue();
ATSTUMAS_COUNTER = new JTextField(String.valueOf(a));
}
}
});
ATSTUMAS_COUNTER.setLocation(640, 385);
ATSTUMAS_COUNTER.setSize(40, 25);
ATSTUMAS_COUNTER.setEditable(false);
PANE.add(ATSTUMAS_COUNTER);发布于 2013-09-27 04:11:09
为什么不停止创建新的ATSTUMAS_COUNTER实例,只更新文本值呢?
@Override
public void stateChanged(ChangeEvent e) {
Document doc = ATSTUMAS_COUNTER.getDocument();
doc.remove(0, doc.getLength());
doc.insert(0, String.valueOf(ATSTUMAS_SLIDER.getValue()), null);
} 此外,只有在人员停止移动滑块之前让值重绘很重要时,才对"isAdjusting“方法进行更新。
https://stackoverflow.com/questions/19037730
复制相似问题