Я новичок в java FX и особенно новичок в построителе сцен.У меня есть небольшое приложение, которое рассчитывает оценки на основе веса.Я добавил к нему строку меню, но Scene Builder позволит мне только привязать mouseClick()
к событию.Проблема в том, что у меня уже есть кнопка расчета (которая рассчитывает оценку), связанная с этим событием.Я бы хотел, чтобы мой MenuItem
открыл диалоговое окно, которое я создал при нажатии.
Вот моя текущая попытка заставить метод работать:
@FXML
public void mouseClick(MouseEvent mouseEvent)
{
if (mouseEvent.getSource().equals(calcBtn))
{
DecimalFormat df = new DecimalFormat("#.##");
double result = calcGrade();
resultLbl.setText("Overall Grade: " + df.format(result) + "%");
}
if (mouseEvent.getSource().equals(aboutMenu))
{
DialogBox.showInformation("About", "Some dialog here.");
}
}
В Swing я помню, как делал такие вещи для обработки нескольких исходных объектов:
if (e.getSource() == menuItem)
{
//do stuff
}
else if (e.getSource() == calculateBtn)
{
//calculate stuff
}
Однако это не работает, и код для кнопки вычисления выполняется независимо.
Из-за способа, которым Scene Builder связывает действия с классом Controller, я не уверен, как разделить действия между этими двумя различными источниками, когдакнопка мыши нажата.Когда я пытаюсь привязать обычай к событию, строитель сцен кричит на меня и разрешает только mouseClick()
.Что было бы хорошим решением для обработки такого типа ситуации?