我想为使用JSpinner和JOptionPane的小项目创建一个简单的菜单。我创建了所需的输出,但是当我与窗口交互,甚至超过在框中的按钮徘徊,一遍又一遍产生视觉假象再次(见下面的图片):Java JOptionPane来自窗口交互的视觉神器
JOptionPane before mouse hover
我做了一些研究,并认为它可能是由于JOptionPane不是线程安全的,但没有得到任何工作。
总的来说,我的具体问题是如何防止Java通过JOptionPane窗口重新绘制这些视觉工件?
仅供参考,请参阅我使用的显示此菜单的方法:
import javax.swing.JFrame;
import javax.swing.JOptionPane;
import javax.swing.SpinnerNumberModel;
import javax.swing.JSpinner;
public class Battleship
{
public static void main(String[] args)
{
SpinnerNumberModel battleshipRange = new SpinnerNumberModel(1, 1, 5, 1);
JSpinner rangeSpinner = new JSpinner(battleshipRange);
JOptionPane.showMessageDialog(null, rangeSpinner, "Battleship Number", JOptionPane.QUESTION_MESSAGE);
}
}
我运行在BlueJ的这段代码和我使用的是Windows 10专业版。
如果这是一个初学者问题,请提前致谢并表示歉意。我对编程还很陌生。
编辑:更新代码以提供完整的问题源,但它消失。我会密切关注,看看错误发生的源头在哪里。
发布4行代码并不能帮助我们。发布一个证明问题的适当的[mcve]。这是根据你对问题的描述,你所需要的只是一个带微调控制器的选项面板,当然还有一个显示选项面板的main()方法。在创建例子时你会发现问题的机会。 – camickr
我重构了我的代码以提供一个合适的示例,但现在错误消失了。即使重新启动我的程序也会使问题消失。当我开发我的程序以查看问题是否再次出现时,我会继续关注它。感谢您的反馈意见。它帮助我缩小了这个问题的范围,并将帮助我在未来提出更好的问题。 – Phillip