2016-07-28 1 views
-1

int (counter), 두 개의 목록 및 for for 루프가 있습니다. 루프 1의 반복마다 루프 2가 4 번 반복됩니다. 각 4 회, 도형이 생성되고 ID는 list2.get (counter)의 ID로 설정됩니다. 이 카운터가 0으로 설정되어 있지만 카운터가 1로 설정되어 있으면 중단됩니다. 목록은 모두 관찰 가능 목록이지만 목록 2에서 두 번째 값으로 가져온 첫 번째 값을 원합니다.int를 선언하고 2 for 루프 내에서 1을 반복합니다.

나는 여러 가지를 시도했지만 아무 것도 효과가 없으므로 이에 대한 도움은 많이 감사합니다. 제 설명을 더 명확하게해야하는지 알려주세요. 코드는 다음과 같습니다.

고맙습니다!

int count = 1; 
String unit; 

for(Object h:hours){ 

    VBox timesheetHour = new VBox(); 

    Label lbl = new Label(h.toString()); 
    lbl.getStyleClass().add("timesheetHour"); 
    timesheetHour.getChildren().add(lbl); 

    HBox timesheetSlots = new HBox(); 
    timesheetSlots.setSpacing(5); 


    for(int i=0;i<4;i++){ 

     unit = hourUnits.get(count); 

     Rectangle r = new Rectangle(20, 25); 
     r.getStyleClass().add("timesheetSlot"); 
     r.setId(unit); 

     count++; 
    } 
} 
+1

"깨지는"방법을 설명해야합니다 –

+0

이 코드는 javafx 응용 프로그램의 홈 윈도우에있는 initialize 메소드 내에 있습니다. int count가 1로 설정되면 로그인 화면 이후에 홈 창이 열리지 않습니다. int count가 0으로 설정되면 모든 것이 잘 동작합니다. – Ace

+0

Aris2World 0을 기준으로 한 의미를 이해하지 못합니다. 나는 자바를 처음 사용하므로 사전에 사과드립니다. 수동으로 unit = hourUnits.get (1); 그것은 작동하지만 그 다음 ofc는 필요한 나머지 값을 얻기 위해 반복하지 않습니다. – Ace

답변

0

귀하의 코드 때문에이 있지만, 1에서 96 인덱스를 사용 하나의 카운터 값을 시작으로 0 ~ 95 (및 확인)에 인덱스 get에 요소를 시도 0의 카운터 값을 시작 작동하지 않습니다 그러나 96 요소가있는 배열에는 인덱스가 96 인 요소가 없으므로 마지막 단계에서 코드가 실패합니다. 당신은 단지 첫 번째 요소를 무시하려면

, 당신은 내부 사이클이 로직을 추가 할 수 있습니다 :이 경우 경우

int counter = 0; 
... 
    for (int i=0; i<4; i++){ 
     if (count > 0) { 
      unit = hourUnits.get(count); 

      Rectangle r = new Rectangle(20, 25); 
      r.getStyleClass().add("timesheetSlot"); 
      r.setId(unit); 
     } 
     count++; 
    } 

그것은 수도 수는 없습니다 당신이 정확하게 원하는,하지만, 당신이해야 정확한 작업을 명확히합니다.

+0

에 도달 할 것입니다. 이것은 많은 것을 설명하고 이해할 수 있습니다 ... 시간 내 주셔서 감사 드리며 많은 도움을줍니다. 당신은 거의 내 문제를 해결했습니다. 그러나 당신은 내가 원하는 방식을 얻기 위해 함께 놀기에 많은 것을주었습니다. – Ace

관련 문제