我目前正在使用 scala.swing 将数独求解程序转换为 GUI,并且在使用不同功能时遇到了一些麻烦。也就是说,我有一个完全解决谜题的功能,另一个提供提示条目的功能,还有一个重置网格的功能。该界面由 81 个单独的 ComboBox'es(参见:http: //i.imgur.com/45vzpei.png)和执行上述功能的三个按钮组成。我的问题是,虽然涉及的单独反应/案例具体参考了要听哪些按钮/功能,但任何按钮都会激发所有功能。我的每个侦听器/按钮的代码如下所示
listenTo(solve,comb11,comb12,comb13,comb14,comb15,comb16,comb17,comb18,comb19,comb21,comb22,comb23,comb24,comb25,comb26,comb27,comb28,comb29,comb31,comb32,comb33,comb34,comb35,comb36,comb37,comb38,comb39,comb41,comb42,comb43,comb44,comb45,comb46,comb47,comb48,comb49,comb51,comb52,comb53,comb54,comb55,comb56,comb57,comb58,comb59,comb61,comb62,comb63,comb64,comb65,comb66,comb67,comb68,comb69,comb71,comb72,comb73,comb74,comb75,comb76,comb77,comb78,comb79,comb81,comb82,comb83,comb84,comb85,comb86,comb87,comb88,comb89,comb91,comb92,comb93,comb94,comb95,comb96,comb97,comb98,comb99)
reactions += {
case ButtonClicked(solve) =>
...[working code for solve function]...
}
('comb##'s 是详尽的 81 个 ComboBoxes,'solve' 是解决整个难题的按钮。)如果我摆脱除一个侦听器/反应代码块之外的所有代码块,单击其余按钮即可完美。如果我尝试包含两个或所有侦听器/反应代码块,那么每个按钮都会导致执行所有功能,这显然是令人困惑和不可取的。