2017-09-09 63 views
-2
private void setIsSelected() { 

    if (option.equals("length")) { 
     isSelectedLength.setVisible(true); 
    } else { 
     isSelectedLength.setVisible(false); 
    } 
    if (option.equals("weight")) { 
     isSelectedWeight.setVisible(true); 
    } else { 
     isSelectedWeight.setVisible(false); 
    } 
    if (option.equals("temp")) { 
     isSelectedTemp.setVisible(true); 
    } else { 
     isSelectedTemp.setVisible(false); 
    } 
    if (option.equals("area")) { 
     isSelectedArea.setVisible(true); 
    } else { 
     isSelectedArea.setVisible(false); 
    } 
    if (option.equals("time")) { 
     isSelectedTime.setVisible(true); 
    } else { 
     isSelectedTime.setVisible(false); 
    } 
} 

我覺得好像有更好更清潔的方法來使這個方法有效。然而,如果這些陳述有效,我覺得好像在重複着自己。任何建議都歡迎。尋找一種方法來製作java方法我寫的效率更高,如果可能的話

+0

您可以使用case語句或散列映射選項及其值到選項處理程序。 – pvg

+0

這個問題的正確答案將取決於知道什麼'選項'是什麼和當前類是什麼。 –

+0

有誰知道我得到了什麼,我甚至可以upvote大聲笑。有些人在stackoverflow上超級鹹 –

回答

3

一件事做的是使用的option.equals(...)值的制定者:

isSelectedLength.setVisible(option.equals("length")); 
isSelectedWeight.setVisible(option.equals("weight")); 
isSelectedTemp.setVisible(option.equals("temp")); 
isSelectedArea.setVisible(option.equals("area")); 
isSelectedTime.setVisible(option.equals("time")); 
0

你可以把這些節點在Map<String, Node>,使該方法的代碼更短/更少重複:

Map<String, Node> nodesByString = new HashMap<>(); 
nodesByString.put("length", isSelectedLength); 
nodesByString.put("weight", isSelectedWeight); 
... 
private void setIsSelected() { 
    for (Node n : nodesByString.values()) { 
     node.setVisible(false); 
    } 

    Node visibleNode = nodesByString.get(option); 
    if (visibleNode != null) { 
     visibleNode.setVisible(true); 
    } 
} 
相關問題