【发布时间】:2018-03-21 21:23:38
【问题描述】:
假设我有一个 JavaFX 应用程序并且想要在场景之间切换。每个场景都包含按钮,按下时会导致以下场景。
为了让我的按钮命令在按下时执行什么操作,我尝试执行以下操作:
for (Button button : buttonsArray) //for each Button in ArrayList
button.setOnAction( e -> handle(frameID, button.ID) );
//give it the data about frame and button
问题是,handle 方法包含大量的 Switch-Case 语句:
switch (frameID) //lokking for a certain frame
{
case 1: switch (ID) // and a certain button
{
case 1: // lead to the certain scene
break;
} break;
}
即使它不会使代码复杂化,写括号或break 错误也很容易破坏一切。也感觉有点像垃圾代码。
那么,管理所有这些按钮的更好方法是什么?我对 Java 和 OOP 比较陌生,但我乐于学习新事物。
【问题讨论】:
-
编辑问题以包含mcve,完整的最少代码,有人可以复制和粘贴来运行和重现您的功能。它不需要包含您所有的交换机 ID,可能只包含其中的四个,以便代表正在发生的事情。
标签: button javafx switch-statement case handle