我开发了一个简单的 MIDI 应用程序,它允许我播放 MIDI 音符,以便用户能够在播放 MIDI 声音时与 UI 进行交互,我将必要的逻辑放在匿名子类中,如下所示:
public static void Play()
{
new Thread(new Runnable()
{
public void run()
{
if (!_sequencer.isRunning())
{
try
{
_sequencer.setSequence(_sequence);
_sequencer.start();
}
catch (Exception e)
{
Logger.Add(e.getMessage());
}
}
}
}).start();
}
例如,尽管当我单击组合框时音乐开始播放 UI 仍然无法响应,但我在 C# 中有类似的工作正常。
在 Java 中是否有某种警告可以解释我所看到的行为?
(如果有帮助,我正在使用的 Java API - javax.sound.midi)
谢谢你的时间。
编辑:
在 UI 周围多点击一下,发现一些有趣的东西;除了最左上角的两个组合框外,一切似乎都运行良好,我尝试删除它们并替换它们,但没有任何区别。单击时,框会变为蓝色(正常情况下),但下拉框不会出现在其下方,并且当焦点位于另一个 UI 组件上时,颜色不会恢复为默认值。这可能是 NetBeans 引入的错误吗?
例子:
编辑2:
经过多次反复试验,我终于找到了问题的原因,线程工作得很好。问题是 NetBeans 以某种方式重新调整了我的 UI 组件,导致窗口填满屏幕,手动调整大小并测试 ComboBox 表明它们实际上工作正常。
感谢大家的反馈!