Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/309.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/linq/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
javaguijslider_Java - Fatal编程技术网

javaguijslider

javaguijslider,java,Java,我刚开始使用java:) 我的问题是: 我想制作一个带有JSlider的GUI,然后滑块移动,我想更改JTextField中的数字。 我试了很多东西,但总是出错 如果我尝试更新GUI信息,总是会出现错误,但如果我使用System.out.println打印滑块的更改值,则不会出现错误。为什么呢 这是我的代码片段: ATSTUMAS_SLIDER = new JSlider(0, 10000, 0); ATSTUMAS_SLIDER.setLocation(150, 375); ATSTUMAS_

我刚开始使用java:)

我的问题是:

我想制作一个带有JSlider的GUI,然后滑块移动,我想更改JTextField中的数字。 我试了很多东西,但总是出错

如果我尝试更新GUI信息,总是会出现错误,但如果我使用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);

为什么不停止创建新的ATSTUMAS_计数器实例,只更新文本值

@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”方法上更新,如果在用户停止移动滑块之前重新绘制值很重要。

Java代码约定中的一条建议是,变量以小写开头,类以大写开头,方法以小写开头,始终使用camelcase样式。建议使用适当的布局管理器为什么不使用JTextField#setText?这一点很好,只是当我浏览javadoc时,我肯定错过了它,甚至到了我需要挖掘文档细节的地步。