我正在尝试使用 JSpinner 和 JOptionPane 为一个小项目创建一个简单的菜单。我创建了我想要的输出,但是当我与窗口交互甚至将鼠标悬停在框中的按钮上时,它会一遍又一遍地创建视觉伪影(见下图):
我做了一些研究,并认为这可能是由于 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 Pro。
如果这是一个初学者问题,请提前感谢您并道歉。我对编程还是很陌生。
编辑:更新代码以提供完整的问题来源,但它消失了。我会密切关注它,看看错误的根源首先发生在哪里。