我正在创建JavaFX座位安排应用程序
@FXML
void addStudentClicked(ActionEvent event) {
String str = studentname.getText();
Random random = new Random();
int randomInt = random.nextInt(9);
if(randomInt == 0){
if(str.isEmpty()){
errorLabel.setText("ERROR");
}
else{
studentname1.setText(studentname.getText());
student1.setFill(studentcolour.getValue());
}
}
else if(randomInt == 1){
if(str.isEmpty()){
errorLabel.setText("ERROR");
}
这是我的代码,到目前为止,它将接受用户输入,并将其应用到一个随机的座位上,它继续使用else if's for each seat,有没有一个更干净的方法来完成这个任务,然后使用所有else if's,以及我如何检查座位是否已经被填满,这样我就不会重复填充同一个座位了?
还有,有没有办法检查颜色是否已经采取?
2条答案
按热度按时间dddzy1tm1#
一个有趣的替代方法是将所有选项放入
List
中,然后应用Collection
方法shuffle(),这样就可以遍历列表,确保每个选项只被选择一次。我还没有仔细研究代码,无法判断switch/case结构是否是更好的选择,但这总是需要考虑的。
r8uurelv2#
下面是一个仅使用控制台的 * 类似 *(故意不相同)示例。
我把它留给您来创建GUI。
1.编写GUI与编写控制台应用程序不同,因为GUI是事件驱动的,所以您需要摆脱一些循环并对事件进行操作。
1.您可以使用ObservableLists在UI中反映列表更改。
这与物理地洗牌一副牌,然后从上到下按顺序抓牌的想法是一样的。
基本思想是,解决这个问题的一种方法是应用:
您还可以学习:
但是您不需要自己编写shuffle算法,您可以使用java集合库中已经实现的算法。
基于控制台应用程序的示例。
我相信这个例子使用了一些你不熟悉的概念,如果你使用了它们,你应该理解它们或者用不同的方式去做。特别是:
尝试运行示例应用程序并查看输出,看看它做了什么,然后尝试思考如何将类似的概念应用到程序中。