gpt4 book ai didi

Java GUI JSlider

转载 作者:行者123 更新时间:2023-12-01 04:19:56 26 4
gpt4 key购买 nike

我刚刚开始使用 java :)。

我的问题是:

我想用 JSlider 制作一个 GUI,然后 slider 移动,我希望 JTextField 中的数字发生变化。我尝试了很多东西,但总是出错。

如果我尝试更新 GUI 信息,我总是会收到错误,但如果我使用 System.out.println 打印 slider 的更改值,则不会收到错误。这是为什么?

这是我的代码片段:

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_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);
}

此外,如果在用户停止移动 slider 之前重绘值很重要,则仅更新“isAdjusting”方法。

关于Java GUI JSlider,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19037730/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com