Long to String возвращает null (jFrame) - PullRequest
0 голосов
/ 12 мая 2018

Я пытаюсь сделать таймер, используя currentTimeMillis, в jFrame, но когда я нажимаю кнопку, которая возвращает истекшее время, возвращаемое значение равно нулю, ни в консоли (см. Это изображение ошибки ) значение нормальное. В данный момент, как вы видите в коде, я использую toString, я попытался с помощью valueOf, но я получаю ошибку «long не может быть преобразован в строку». Он «кусок» моего кода:

public class MainFrame extends javax.swing.JFrame {

public long startTime;
long elapsedSeconds;
long elapsedTime;    
public long secondsDisplay; // Segundos |
public long elapsedMinutes; // Minutos   } os três principais
public long elapsedHours;   // Horas    |
String ShowSeg = Long.toString(secondsDisplay);
String ShowMin = Long.toString(elapsedMinutes);
String ShowHour = Long.toString(elapsedHours);
/**
 * Creates new form SSMFrame
 */
public MainFrame() {
    initComponents();
}
@SuppressWarnings("unchecked")
//*A long code resided here*//                     
private void StoCountActionPerformed(java.awt.event.ActionEvent evt) {                                         
elapsedTime = System.currentTimeMillis() - startTime;
elapsedSeconds = elapsedTime / 1000;
secondsDisplay = elapsedSeconds % 60;
elapsedMinutes = elapsedSeconds / 60;
elapsedHours = elapsedMinutes / 60;
    ShowETseg.setText(ShowSeg);
    ShowETmin.setText(ShowMin);
    ShowEThour.setText(ShowHour);

1 Ответ

0 голосов
/ 12 мая 2018

Вы должны установить значение строковых переменных после того, как получите время
, поэтому измените ваш код следующим образом:

public class MainFrame extends javax.swing.JFrame {

    public long startTime;
    long elapsedSeconds;
    long elapsedTime;    
    public long secondsDisplay; // Segundos |
    public long elapsedMinutes; // Minutos   } os três principais
    public long elapsedHours;   // Horas    |


//initialize the string variables to empty strings 
    String ShowSeg = "";//
    String ShowMin = "";//
    String ShowHour = "";//
    /**
     * Creates new form SSMFrame
     */
    public MainFrame() {
        initComponents();
    }
    @SuppressWarnings("unchecked")
    //*A long code resided here*//                     
    private void StoCountActionPerformed(java.awt.event.ActionEvent evt) {                                         
    elapsedTime = System.currentTimeMillis() - startTime;
    elapsedSeconds = elapsedTime / 1000;
    secondsDisplay = elapsedSeconds % 60;
    elapsedMinutes = elapsedSeconds / 60;
    elapsedHours = elapsedMinutes / 60;


//set the strings to their long equivalents
ShowSeg = Long.toString(secondsDisplay);
ShowMin = Long.toString(elapsedMinutes );
ShowHour = Long.toString(elapsedHours);


        ShowETseg.setText(ShowSeg);
        ShowETmin.setText(ShowMin);
        ShowEThour.setText(ShowHour);
...