java在switch语句中删除edit
我正在创建一个扑克赔率计算器,我有8名玩家在一张桌子周围设置了一个JComboBox,其中包含选定数量的玩家。我希望做的是在我做出多个选择之后“重新绘制”GUI。例如,如果单击4个玩家,则4个玩家将变为可编辑。这目前有效,但当我选择3名球员后,球员4仍然是可编辑的
我尝试过设置可见性,我尝试过移除玩家窗格,我尝试过移除(addPlayer4),我尝试过其他一些奇怪的事情,但我能得到的最接近的方法是完全移除玩家
addPlayer1.addActionListener((ActionEvent e) -> {
player1.removeAll();
player1.add(playerPanelFactory("Player1",1));
//welcomeScreen.get
repaint();
validate();
});
addPlayer2.addActionListener((ActionEvent e) -> {
player2.removeAll();
player2.add(playerPanelFactory("Player2",2));
getParent().repaint();
// contentPane.repaint();
validate();
});
addPlayer3.addActionListener((ActionEvent e) -> {
player3.removeAll();
player3.add(playerPanelFactory("Player3",3));
getParent().repaint();
// contentPane.repaint();
validate();
});
addPlayer4.addActionListener((ActionEvent e) -> {
player4.removeAll();
player4.add(playerPanelFactory("Player4",4));
repaint();
validate();
});
playerBox.addActionListener((ActionEvent e)-> {
numberOfPlayers = playerBox.getSelectedItem().toString();
int numPlayers = Integer.parseInt(numberOfPlayers);
switch(numPlayers){
case 1:
addPlayer1.doClick();
break;
case 2:
addPlayer1.doClick();
addPlayer2.doClick();
break;
case 3:
addPlayer1.doClick();
addPlayer2.doClick();
addPlayer3.doClick();
break;
case 4:
addPlayer1.doClick();
addPlayer2.doClick();
addPlayer3.doClick();
addPlayer4.doClick();
break;
case 5:
addPlayer1.doClick();
addPlayer2.doClick();
addPlayer3.doClick();
addPlayer4.doClick();
addPlayer5.doClick();
break;
case 6:
addPlayer1.doClick();
addPlayer2.doClick();
addPlayer3.doClick();
addPlayer4.doClick();
addPlayer5.doClick();
addPlayer6.doClick();
break;
case 7:
addPlayer1.doClick();
addPlayer2.doClick();
addPlayer3.doClick();
addPlayer4.doClick();
addPlayer5.doClick();
addPlayer6.doClick();
addPlayer7.doClick();
break;
case 8:
addPlayer1.doClick();
addPlayer2.doClick();
addPlayer3.doClick();
addPlayer4.doClick();
addPlayer5.doClick();
addPlayer6.doClick();
addPlayer7.doClick();
addPlayer8.doClick();
break;
default:
return;
}
});
我不想链接所有的代码,因为它几乎有700行,但我相信这就是问题所在。我的目标是让玩家窗格在选中时可编辑,而在未选中时不可编辑
https://imgur.com/a/ssgXSXW? 我希望这是有道理的
# 1 楼答案
希望这种适应将有助于解决您的问题。基本上,你每次更改计数器时都会添加一些玩家,每次更改时都会重新添加他们,例如,当选择一个玩家时,你会生成一个玩家。然后当两个玩家被选中时,你会再次产生玩家1和玩家2。也许加入某种类型的检查,这样你就不会再次创建相同的玩家了,这样你就不必在每次添加玩家时都清除他们,尽管这只是一个小想法
有了这个建议,我们的目标是基本上比较当前的玩家数量和以前的玩家数量。如果我们要增加更多的玩家或保持不变,继续正常操作并更新我们的变量。但是,如果我们删除一个或多个玩家,请在重新绘制之前删除当前玩家数量和目标玩家数量之间的玩家
示例案例:从7名玩家增加到5名玩家。因此我们想要删除新的玩家数量(5)+1,所以玩家6。然后循环并删除最后一个玩家,玩家7。然后重新绘制
在没有代码的情况下,我无法测试它,但我希望我的头脑风暴能有所帮助,或者它能激发你自己或其他人的一些想法:)希望它也能实现。如果有人知道更好的方法,我也会洗耳恭听,急切地想知道我哪里出了问题!:)