首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Java GUI JSlider

Java GUI JSlider
EN

Stack Overflow用户
提问于 2013-09-27 04:07:53
回答 1查看 113关注 0票数 1

我刚开始使用java :)。

我的问题是:

我想做一个带有JSlider的图形用户界面,然后滑块移动,我想让JTextField中的一个数字发生变化。我尝试了很多东西,但总是出错。

如果我尝试更新图形用户界面信息,我总是得到一个错误,但如果我使用System.out.println打印更改的滑块的值,我不会得到一个错误。为什么会这样呢?

这是我的代码片段:

代码语言:javascript
复制
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);
EN

回答 1

Stack Overflow用户

发布于 2013-09-27 04:11:09

为什么不停止创建新的ATSTUMAS_COUNTER实例,只更新文本值呢?

代码语言:javascript
复制
@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“方法进行更新。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/19037730

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档