2014-11-07 2 views
0

다른 JTextfield (oneSecs)가 0이되는 모든 인스턴스에 대해 JTextfield (tenSecs)의 값을 하나씩 증가 시키려고합니다. tenSecs JTextField를 수동으로 즉시 oneSecs 0, tenSecs로 복귀 내가 오류가 라인 int i = 0; 주위에 발생하는 확신 0JTextField의 정수를 하나씩 늘리십시오.

javax.swing.Timer tm = new javax.swing.Timer(1000, new ActionListener() { 
    public void actionPerformed(ActionEvent evt) { 
     AddOneActionPerformed(evt); 
    } 
}); 

private void StartStopTimerActionPerformed(java.awt.event.ActionEvent evt) {            

    if (!tm.isRunning()) { 
     tm.start(); 
    } else { 
     tm.stop(); 
    } 

    ScheduledExecutorService e= Executors.newSingleThreadScheduledExecutor(); //Start new scheduled executor service to invoke a timer that start wehn button is pressed 
    e.scheduleAtFixedRate(new Runnable() { 

     @Override 
     public void run() { 
      //Follow this Override to do task 
      SwingUtilities.invokeLater(new Runnable() { 
       //Override will let the task run     

       @Override 
       public void run() { 
        oneSecsDisplay.setIcon(new ImageIcon("images\\" + TextGrabber() + ".png")); 
        oneSecs.setText(DigitValue.getText()); 

        int i = 0; 

        if (Integer.parseInt(oneSecs.getText()) == i) { 
         tenSecs.setText(Integer.toString(i++)); 
        } 
       } 
      }); 
     } 
    }, 0, 100, TimeUnit.MILLISECONDS); //Update will be for every 100 milliseconds concurrent to system time 
} 

// Variables declaration - do not modify 
private javax.swing.JTextField oneSecs; 
private javax.swing.JTextField tenSecs; 
// End of variables declaration 

에 도달로, 수를 변경하는 경우는 항상 0 때문이다. 나는 누군가가 친절하게

+1

하여 들여 쓰기를 수정 시도 부디. – khelwood

답변

1

내가 제대로 이해 해요 경우 올바른 방향으로 날 지점 수 있다면 값을 증가 내 방법은이 작업을 수행하는 가장 좋은 방법은 아니라고도 확신 tenSecs.setText(String.valueOf(Integer.parseInt(tenSecs.getText()) + 1));

+0

이 코드는 작동하지만, 새로운 문제는 코드가 코드 대신 약 11 개를 추가한다는 것입니다. 내 타이머가 매 100ms마다 업데이트되는 것과 관련이 있다고 생각합니다. –

+0

걱정하지 않아도 문제를 해결했습니다. 도움을 주셔서 감사합니다! –

관련 문제