나는 enum
다음과 같은 경우 :열거 형의 각 값에 JRadioButton을 추가 할 수 있습니까?
private enum Difficulty {
EASY("Easy"),
MEDIUM("Medium"),
HARD("Hard"),
EXTRA_HARD("Extra Hard");
public final String name;
private Difficulty(String name) {
this.name = name;
}
}
그리고 내가 Difficulty
의 값으로 각각 추가 할 Choice
있습니다
for (Difficulty diff : Difficulty.values()) {
choiceDiff.add(diff.name);
}
을하고 내가 ItemListener
추가
choiceDiff.addItemListener((ItemEvent e) -> {
labDifficulty.setText("High Score for " + choiceDiff.getSelectedItem() + " Difficulty:");
labDifficultyScore.setText(Integer.toString(HIGH_SCORES[choiceDiff.getSelectedIndex()]));
}
이제대신 몇개의 JRadioButton
을 갖기를 원한다면; 위에있는 것과 비슷한 방식으로이 작업을 수행 할 수있는 방법이 있습니까? 반복을 피하고 어려움을 수정하기위한 중심점으로 enum
을 사용하면서 난이도 수준과 해당 정보를 변경할 수 있기를 원합니다 (완전히 구현 된 경우 이름보다 많은 특성을 가짐). 이 일을 어떤 방법이 있나요, 또는 거기에 다른입니다
ButtonGroup btgrpDiff = new ButtonGroup();
for (Difficulty diff : Difficulty.values()) {
String name = diff.name;
JRadioButton name = new JRadioButton(diff.name);
name.addItemListener((ItemEvent e) -> {
labDifficulty.setText("High Score for " + diff.name + " Difficulty:");
labDifficultyScore.setText(Integer.toString(HIGH_SCORES[diff.ordinal()]));
}
btgrpDiff.add(name);
}
:
나는 (지금 EXTRA_HARD
의 name
에 공백이 있음에 대한 무시) 같은 것을 할 싶습니다 같은 결과를 가져올 수있는 방법?
정확히 작동하지 않는 것은 무엇입니까? ('name'을'String'과'JRadioButton'으로 혼동하는 것은 혼란 스럽습니다.) –
두 번째 for 루프의'name'은 실제로 필요하지 않았습니다. 나는 단지 그것이 더 잘 작동하기를 원했던 방법을 보여주고 싶었다. 작동하지 않는 점은'JRadioButton'에 대한 유효한 식별자로 diff.name을 인식하지 못하기 때문에 각 난이도의 'name'을'difficulty'' enum'에서 가져 오면됩니다. –