Я разрабатываю программу, которая по сути функционирует как музыкальный проигрыватель. Он отлично работает в Eclipse, но при экспорте ни одна из созданных кнопок не воспроизводит музыку, как задумано.
Чтобы исследовать это, я разработал новую кнопку, которая будет вызывать тестовый метод, который получает случайную песню из указанного каталога, воспроизводит эту песню и возвращает строку «cat». Затем я вставил оператор if ниже строки, где я вызвал метод, чтобы увидеть, было ли присвоено значение «cat». В случае успеха кнопка поменяет цвет на красный. Это позволило бы мне увидеть, был ли завершен тестовый метод, независимо от того, играла ли музыка. ПРИМЕЧАНИЕ: multiPlayer - это экземпляр класса MediaPlayer, который я разработал.
ActionEventListener для тестовой кнопки :
button.addActionListener(new ActionListener()
{
@Override
public void actionPerformed(ActionEvent e)
{
String x = multiPlayer.testThis();
if(x.equals("cat")) {
button.setBackground(Color.RED);
}
}
});
Метод вызывается выбором кнопки :
public String testThis()
{
JFXPanel fxPanel = new JFXPanel();
File file = getRandomSong();
Media hit = new Media(file.toURI().toString());
mediaPlayer = new MediaPlayer(hit);
mediaPlayer.play();
return "cat";
}
Затем я пошелстрока за строкой тестового метода, комментируя строки, чтобы увидеть, где метод терпит неудачу при экспорте. Я обнаружил, что источником проблемы является строка, где я создаю новую JFXPanel. Например, если я запускаю метод getRandomSong, кнопка просто меняет цвет;однако, если я добавлю новую строку JFXPanel (), кнопка не сможет изменить цвет, что свидетельствует о том, что метод не работает.
Может кто-нибудь дать мне совет по этому поводу? Заранее спасибо!